<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >pg_send_query</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="PostgreSQL 数据库函数" HREF="ref.pgsql.html"><LINK REL="PREVIOUS" TITLE="pg_send_query_params" HREF="function.pg-send-query-params.html"><LINK REL="NEXT" TITLE="pg_set_client_encoding" HREF="function.pg-set-client-encoding.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.pg-send-query-params.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.pg-set-client-encoding.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.pg-send-query" ></A >pg_send_query</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN187065" ></A ><P > (PHP 4 >= 4.2.0, PHP 5)</P >pg_send_query -- 发送异步查询 </DIV ><DIV CLASS="refsect1" ><A NAME="AEN187068" ></A ><H2 >说明</H2 >bool <B CLASS="methodname" >pg_send_query</B > ( resource connection, string query )<BR ></BR >bool <B CLASS="methodname" >pg_send_query</B > ( string query )<BR ></BR ><P > <B CLASS="function" >pg_send_query()</B > 向 <CODE CLASS="parameter" >connection</CODE > 连接发送异步查询。和 <A HREF="function.pg-query.html" ><B CLASS="function" >pg_query()</B ></A > 不同,它可以向 PostgreSQL 发送多个查询并用 <A HREF="function.pg-get-result.html" ><B CLASS="function" >pg_get_result()</B ></A > 依次得到结果。当执行查询时脚本的执行不会被锁定。用 <A HREF="function.pg-connection-busy.html" ><B CLASS="function" >pg_connection_busy()</B ></A > 来检查连接连接是否为忙(即查询正在执行中)。调用 <A HREF="function.pg-cancel-query.html" ><B CLASS="function" >pg_cancel_query()</B ></A > 则有可能取消查询。 </P ><P > 尽管用户可以一次发送多个查询,但用户不能通过正忙的连接发送多个查询。如果向正忙的连接发送了查询,则会等待上一条查询结束并丢弃所有结果。 </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN187094" ></A ><P ><B >例 1. 异步查询</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /> $dbconn </font><font color="#007700">= </font><font color="#0000BB">pg_connect</font><font color="#007700">(</font><font color="#DD0000">"dbname=publisher"</font><font color="#007700">) or die(</font><font color="#DD0000">"Could not connect"</font><font color="#007700">);<br /> if (!</font><font color="#0000BB">pg_connection_busy</font><font color="#007700">(</font><font color="#0000BB">$dbconn</font><font color="#007700">)) {<br /> </font><font color="#0000BB">pg_send_query</font><font color="#007700">(</font><font color="#0000BB">$dbconn</font><font color="#007700">,</font><font color="#DD0000">"select * from authors; select count(*) from authors;"</font><font color="#007700">);<br /> }<br /> </font><font color="#0000BB">$res1 </font><font color="#007700">= </font><font color="#0000BB">pg_get_result</font><font color="#007700">(</font><font color="#0000BB">$dbconn</font><font color="#007700">);<br /> echo </font><font color="#DD0000">"First call to pg_get_result(): $res1</font><font color="#007700">\n</font><font color="#DD0000">"</font><font color="#007700">;<br /> </font><font color="#0000BB">$rows1 </font><font color="#007700">= </font><font color="#0000BB">pg_num_rows</font><font color="#007700">(</font><font color="#0000BB">$res1</font><font color="#007700">);<br /> echo </font><font color="#DD0000">"$res1 has $rows1 records</font><font color="#007700">\n\n</font><font color="#DD0000">"</font><font color="#007700">;<br /> </font><font color="#0000BB">$res2 </font><font color="#007700">= </font><font color="#0000BB">pg_get_result</font><font color="#007700">(</font><font color="#0000BB">$dbconn</font><font color="#007700">);<br /> echo </font><font color="#DD0000">"second call to pg_get_result(): $res2</font><font color="#007700">\n</font><font color="#DD0000">"</font><font color="#007700">;<br /> </font><font color="#0000BB">$rows2 </font><font color="#007700">= </font><font color="#0000BB">pg_num_rows</font><font color="#007700">(</font><font color="#0000BB">$res2</font><font color="#007700">);<br /> echo </font><font color="#DD0000">"$res2 has $rows2 records</font><font color="#007700">\n</font><font color="#DD0000">"</font><font color="#007700">;<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P > 上例输出如下: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >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</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > 参见 <A HREF="function.pg-query.html" ><B CLASS="function" >pg_query()</B ></A >,<A HREF="function.pg-cancel-query.html" ><B CLASS="function" >pg_cancel_query()</B ></A >,<A HREF="function.pg-get-result.html" ><B CLASS="function" >pg_get_result()</B ></A > 和 <A HREF="function.pg-connection-busy.html" ><B CLASS="function" >pg_connection_busy()</B ></A >。 </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.pg-send-query-params.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.pg-set-client-encoding.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >pg_send_query_params</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.pgsql.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >pg_set_client_encoding</TD ></TR ></TABLE ></DIV ></BODY ></HTML >