(PHP 5 >= 5.1.0)
pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения
$connection
, string $stmtname
, string $query
)Посылает запрос на создание параметризованного SQL выражения и не ждет его завершения.
Это асинхронная версия функции pg_prepare():
она возвращает TRUE
, если удалось отправить запрос, FALSE
в
противном случае. После успешной отправки, воспользуйтесь функцией
pg_get_result(), чтобы узнать, создалось ли требуемое
SQL выражение. Аргументы функции обрабатываются так же, как в
pg_prepare(). Функция не будет работать
с серверами PostgreSQL версий ниже 7.4.
connection
Ресурс подключения к базе данных PostgreSQL. Если параметр
connection
не задан, будет использовано
подключение по умолчанию - последнее соединение, открытое функцией
pg_connect() или pg_pconnect().
stmtname
Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.
query
Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.
TRUE
, если удалось отправить запрос, FALSE
в
противном случае. После успешной отправки, воспользуйтесь функцией
pg_get_result(), чтобы узнать, создалось ли требуемое
SQL выражение.
Пример #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);
}
?>