pg_send_prepare

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

pg_send_prepare Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения

Описание

pg_send_prepare(resource $connection, string $stmtname, string $query): bool

Посылает запрос на создание параметризованного 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);
  }

?>

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

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат
  • pg_send_execute() - Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата
  • pg_send_query_params() - Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

add a note add a note

User Contributed Notes

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