pg_close 必须等待查询结束

pg_close must to wait query end

我正在制作一个注册大型 CSV 数据文件的函数,因此我正在寻找可以将异步查询发送到 postgre sql 服务器并稍后接收查询结果的方法。 我尝试使用 pg_send_query 发送 SQL(需要时间查询),如下所示。

SQL

 $sql   = SELECT * FROM BATCH_WORK_TBL WHERE COPR_ID='99999999test';

PHP 脚本

//-----------------------------------------------
// DB Conntect
//-----------------------------------------------
$conn = pg_connect('user=username dbname=databasename');

//-----------------------------------------------
// Send asynchronous query
//-----------------------------------------------
$sql = " SELECT * FROM BATCH_WORK_TBL WHERE COPR_ID='99999999test' ";
if (!pg_connection_busy( $conn  )) {
    $res = pg_send_query($conn , $sql ); // pg_send_query return result(true/flase) without wait results
}
pg_close($conn); // pg_close wait until it query return result

然而,当我关闭连接时,pg_close() 等待很长时间直到查询 return 查询结果所以最后我的 php 脚本需要很长时间 运行.

任何人如果有使用 php 在 posgres sql 上进行异步查询的经验,在这种情况下你能帮我吗?

那不行。 某些事情 必须保持数据库连接打开以便可以接收查询结果。

您可以保持连接打开,做一些其他工作并稍后回来检查连接,或者您编写一个协同进程等待您(并具有数据库连接)。