PHP

pg_send_query

pg_send_query

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

pg_send_query - 发送异步查询

描述

bool pg_send_query ( resource $connection , string $query )

pg_send_query()异步发送一个或多个查询connection。与pg_query()不同,它可以一次向PostgreSQL发送多个查询,并使用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("Could not connect"   if (!pg_connection_busy($dbconn)) {       pg_send_query($dbconn, "select * from authors; select count(*) from authors;"   }      $res1 = pg_get_result($dbconn   echo "First call to pg_get_result(): $res1\n";   $rows1 = pg_num_rows($res1   echo "$res1 has $rows1 records\n\n";      $res2 = pg_get_result($dbconn   echo "Second call to pg_get_result(): $res2\n";   $rows2 = pg_num_rows($res2   echo "$res2 has $rows2 records\n"; ?>

上面的例子将输出:

First call to pg_get_result(): Resource id #3 Resource id #3 has 3 records Second call to pg_get_result(): Resource id #4 Resource id #4 has 1 records