(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения
Посылает запрос на создание параметризованного SQL выражения и не ждёт его завершения.
Это асинхронный вариант функции pg_prepare():
она возвращает true
, если удалось отправить запрос, иначе false
.
После успешной отправки, воспользуйтесь функцией
pg_get_result(), чтобы узнать, создалось ли требуемое
SQL выражение. Аргументы функции обрабатываются так же, как в
pg_prepare(). Функция не будет работать
с серверами PostgreSQL версий ниже 7.4.
connection
Экземпляр класса PgSql\Connection.
statement_name
Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определённое ранее.
query
Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделённых точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т. д.
Функция возвращает true
в случае успешного выполнения,
false
или 0
, если возникла ошибка.
Результат запроса получают функцией pg_get_result().
Версия | Описание |
---|---|
8.1.0 |
Параметр connection теперь ожидает экземпляр
класса PgSql\Connection; раньше параметр ожидал ресурс (resource).
|
Пример #1 Пример использования функции pg_send_prepare()
<?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);
}
?>