(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат
Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат.
pg_execute() аналог функции pg_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. Сам запрос должен быть заранее подготовлен в текущей сессии. pg_execute() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать на соединениях с сервером ранних версий.
Аргументы функции те же, что и у pg_query_params(), за исключением имени предварительно составленного запроса, который передаётся вместо строки с запросом.
connection
Экземпляр PgSql\Connection.
Если connection
не указано, используется соединение по умолчанию. Соединение по умолчанию - это последнее соединение, выполненное с помощью функций pg_connect()
или pg_pconnect().
Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.
stmtname
Имя подготовленного к исполнению запроса. Если передана пустая строка "",
будет выполнен безымянный запрос. Имя и содержимое запроса должны быть
подготовлены функцией pg_prepare(),
pg_send_prepare() либо с помощью SQL-команды PREPARE
.
params
Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.
Элементы массива будут преобразованы в строки.
Экземпляр PgSql\Result в случае успешного выполнения или false
в случае возникновения ошибки.
Версия | Описание |
---|---|
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource). |
8.1.0 |
Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
|
Пример #1 Пример использования pg_execute()
<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");
// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
?>