Отправляет асинхронный запрос


(PHP 4 >= 4.2.0, PHP 5)

pg_send_query Отправляет асинхронный запрос

Описание

bool pg_send_query ( resource $connection , string $query )

pg_send_query() отправляет на выполнение асинхронный запрос. В отличие от pg_query() запрос может содержать несколько SQL выражений, разделенных точкой с запятой. Для получения результата запроса используйте функцию pg_get_result().

Выполнение запроса не прерывает работу скрипта. Для определения занятости соединения (когда запрос еще выполняется) используйте функцию pg_connection_busy(). Выполнение запроса можно прервать функцией pg_cancel_query().

Несмотря на то, что можно отправить несколько запросов за раз, их нельзя посылать, пока соединение занято. В противном случае, посланный запрос дождется завершения предыдущего, сотрет его результат и запустится сам. Таким образом вы потеряете данные результата предыдущего запроса.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

query

Одно или несколько SQL выражений, разделенных точкой с запятой.

Спецсимволы в строке запроса должны быть экранированы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Для получения результата запроса используйте функцию pg_get_result().

Примеры

Пример #1 Пример использования pg_send_query()

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Невозможно подключиться");

  if (!
pg_connection_busy($dbconn)) {
      
pg_send_query($dbconn"select * from authors; select count(*) from authors;");
  }
  
  
$res1 pg_get_result($dbconn);
  echo 
"Первый вызов pg_get_result(): $res1\n";
  
$rows1 pg_num_rows($res1);
  echo 
"$res1 содержит $rows1 записей\n\n";
  
  
$res2 pg_get_result($dbconn);
  echo 
"Второй вызов pg_get_result(): $res2\n";
  
$rows2 pg_num_rows($res2);
  echo 
"$res2 содержит $rows2 записей\n";
?>

Результат выполнения данного примера:

 Первый вызов pg_get_result(): Resource id #3 Resource id #3 содержит 3 записей  Второй вызов pg_get_result(): Resource id #4 Resource id #4 содержит 1 записей 

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

  • pg_query() - Выполняет запрос
  • pg_cancel_query() - Остановка асинхронного запроса.
  • pg_get_result() - Получение результата асинхронного запроса
  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.