pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

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

Описание

pg_send_query(PgSql\Connection $connection, string $query): int|bool

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

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

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

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

connection

Экземпляр класса PgSql\Connection.

query

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

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

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

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия Описание
8.1.0 Параметр connection теперь ожидает экземпляр класса PgSql\Connection; раньше параметр ждал ресурс (resource).

Примеры

Пример #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() - Проверяет, занято ли соединение в данный момент.