Dbmier LED Artcraft Tracing Light Pad Light Box Light Board Light Table- A4

PHP Tech Blog

Dbmier LED Artcraft Tracing Light Pad Light Box Light Board Light Table- A4

留言簿(5)

Links

My Favorites

推荐技术文章

阅读排行榜

评论排行榜

mysql_unbuffered_query与mysql_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手册中的解释,上网查了很多对手册中已有的解释的解释,很多人希望有个实例来更好地理解这个函数的应用,我按照给的解释,做了个实例,仅供参考:

 

Code
 1$link = mysql_connect('localhost','root','pwd');
 2mysql_select_db('dbname');
 3$sql = "SELECT * FROM tablename";
 4
 5/*
 6注意以下两个$result,如果用mysql_query(),那么mysql_data_seek()函数将起作用,因为查询结果缓存了,如果用
 7mysql_unbuffered_query()函数,那么mysql_data_seek()不起作用,正如它在手册中的解释,不缓存。
 8*/
 9
10$result = mysql_unbuffered_query($sql,$link);
11//$result = mysql_query($sql,$link);
12
13 while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
14        printf ("ID: %s  Name: %s", $row[0], $row[1]);
15
16}
17
18
19mysql_data_seek($result,0);
20
21 while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
22        printf ("ID: %s  Name: %s", $row[0], $row[1]);
23}
24
25    mysql_free_result($result);
 
应用:对于大的结果集, mysql_unbuffered_query 每次只取一条. mysql_query是全部取出. 前者节省内存.

来源:http://www.cnblogs.com/ovliverlin/archive/2009/04/24/1443055.html

posted on 2009-08-20 10:30 haix 阅读(440) 评论(0)  编辑 收藏 引用 网摘 所属分类: MYSQL


只有注册用户登录后才能发表评论。
网站导航:
Dbmier LED Artcraft Tracing Light Pad Light Box Light Board Light Table- A4