mysql_unbuffered_query
向 MySQL 发送 SQL 查询,无需获取和缓冲结果行
&mysql.alternative.note;
参阅:缓冲和非缓冲查询
&reftitle.description;
resourcemysql_unbuffered_query
stringquery
resourcelink_identifierNULL
mysql_unbuffered_query 将 SQL query 发送到 MySQL,而不像 mysql_query
那样自动获取和缓冲结果行。对于生成大型结果集的 SQL 查询,这可以节省大量内存,并且可以在检索第一行后立即开始处理结果集,因为不必等到执行完整的 SQL
查询。要在打开多个数据库连接时使用 mysql_unbuffered_query,必须指定可选参数 link_identifier
来标识要使用哪个连接。
&reftitle.parameters;
query
要执行的 SQL 查询。
查询中的数据应正确转义。
&mysql.linkid.description;
&reftitle.returnvalues;
对于 SELECT、SHOW、DESCRIBE 或 EXPLAIN 语句,mysql_unbuffered_query 在成功时返回
resource,错误时返回 &false;。
对于其他类型的 SQL 语句,UPDATE、DELETE、DROP 等,mysql_unbuffered_query
在成功时返回 &true;,在错误时返回 &false;。
&reftitle.notes;
mysql_unbuffered_query 的好处是有代价的:在获取所有行之前,不能对 mysql_unbuffered_query
返回的结果集使用 mysql_num_rows 和 mysql_data_seek。还必须使用相同的
link_identifier 从无缓冲的 SQL 查询中获取所有结果行,然后才能将新的 SQL 查询发送到 MySQL。
&reftitle.seealso;
mysql_query