我想知道mysql_query
/mysqli_query
和mysql_fetch_*
/mysqli_fetch_*
函数是如何工作的。mysql_query
调用结果存储在哪里?是 MySQL 服务器还是 PHP 客户端?何时发生数据传输?
问问题
38 次
1 回答
1
它是 PHP 和 MySQL 服务器之间的合作。mysql*_query
向服务器发送一个查询,提示它筛选其数据并组装一个结果集。这个结果集现在需要传输到 PHP,一次一行。
默认情况下,mysql*_query
使用缓冲查询,这意味着它会尽快将数据一点一点地传输到 PHP。调用的时候mysql*_fetch*
,你一行一行的读取这个数据。您还可以使用无缓冲查询,例如使用mysql_unbuffered_query
. 这不会在后台传输数据,仅当您显式调用其中一个*fetch*
函数时才会这样做。这在 PHP 端使用的内存较少,但速度较慢,并且反过来要求 SQL 服务器保留数据的时间比其他情况要长。
于 2013-08-22T08:02:23.087 回答