PostgreSQL
PHP Manual

pg_send_prepare

(PHP 5 >= 5.1.0)

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

Описание

bool pg_send_prepare ( resource $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);
  }
  
?>

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


PostgreSQL
PHP Manual