PHPCon Poland 2024

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_execute Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата

Описание

pg_send_execute(PgSql\Connection $connection, string $statement_name, array $params): int|bool

Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата.

Работает аналогично функции pg_send_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Аргументы функции обрабатываются так же, как и в функции pg_execute(). Как и pg_execute() эта функция не будет работать на соединениях с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Экземпляр класса PgSql\Connection.

statement_name

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия Описание
8.1.0 Параметр connection теперь ожидает экземпляр класса PgSql\Connection; раньше параметр ждал ресурс (resource).

Примеры

Пример #1 Пример использования pg_send_execute()

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Could not connect");

// Подготовка запроса
if (!pg_connection_busy($dbconn)) {
pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
$res1 = pg_get_result($dbconn);
}

// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
$res2 = pg_get_result($dbconn);
}

// Запуск на выполнение того же запроса, но с другим параметром
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
$res3 = pg_get_result($dbconn);
}

?>

Смотрите также

  • pg_prepare() - Посылает запрос на создание параметризованного SQL выражения и ждёт его завершения
  • pg_send_prepare() - Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top