(PHP 4 >= 4.2.0, PHP 5)
pg_send_query — Отправляет асинхронный запрос
$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 записей