pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7)

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() - Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата