PHP中的mysql_unbuffered_query与mysql_query的区别
PHP中的mysql_unbuffered_query与mysql_query的区别
开元中国2015 发表于3年前
PHP中的mysql_unbuffered_query与mysql_query的区别
  • 发表于 3年前
  • 阅读 22
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

PHP中的mysql_unbuffered_query与mysql_query的区别

对于mysql_query大家都很熟悉,下面先简单介绍下mysql_unbuffered_query 

mysql_unbuffered_query 

(PHP 4 >= 4.0.6, PHP 5)mysql_unbuffered_query -- 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行 

说明resource mysql_unbuffered_query ( string query [, resource link_identifier] ) 


mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query,但不像 mysql_query() 那样自动获取并缓存结果集。一方面,这在处理很大的结果集时会节省可观的内存。另一方面,可以在获取第一行后立即对结果集进行操作,而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时,必须指定可选参数 link_identifier。 

注意: mysql_unbuffered_query() 的好处是有代价的:在 mysql_unbuffered_query() 返回的结果集之上不能使用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 发送一条新的 SQL 查询之前,必须提取掉所有未缓存的 SQL 查询所产生的结果行。 

以上是mysql_unbuffered_query 在php手册中的解释,上网查了很多对手册中已有的解释的解释,很多人希望有个实例来更好地理解这个函数的应用,我按照给的解释,做了个实例,仅供参考: 

$link = mysql_connect('localhost','root','pwd');
mysql_select_db('dbname');
$sql = "SELECT * FROM tablename";

/*
注意以下两个$result,如果用mysql_query(),那么mysql_data_seek()函数将起作用,因为查询结果缓存了,如果用
mysql_unbuffered_query()函数,那么mysql_data_seek()不起作用,正如它在手册中的解释,不缓存。
*/

$result = mysql_unbuffered_query($sql,$link);
//$result = mysql_query($sql,$link);

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);

}


mysql_data_seek($result,0);

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);"



参考来源: 
PHP中的mysql_unbuffered_query与mysql_query的区别
http://www.lai18.com/content/317207.html

共有 人打赏支持
粉丝 32
博文 104
码字总数 112959
×
开元中国2015
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: