对于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);"

参考文章: http://www.lai18.com/content/317207.html

PHP中的mysql_unbuffered_query与mysql_query的区别的更多相关文章

  1. JDBC中的Statement和PreparedStatement的区别

    JDBC中的Statement和PreparedStatement的区别  

  2. LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别

    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() .例如: s ...

  3. JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...

  4. 【前端】js中new和Object.create()的区别

    js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...

  5. SQL Server中Text和varchar(max)数据类型区别

    SQL Server中Text和varchar(max)数据类型区别   以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与v ...

  6. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  7. c++中的引用与指针的区别

    http://blog.csdn.net/lyd_253261362/article/details/4323691 c++中的引用与指针的区别 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存 ...

  8. Oracle中执行存储过程call和exec区别

    Oracle中执行存储过程call和exec区别 在sqlplus中这两种方法都可以使用: exec pro_name(参数1..); call pro_name(参数1..); 区别: 1. 但是e ...

  9. 表单提交中get和post方式的区别

    表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据. 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一 ...

随机推荐

  1. matlab绘图(详细)(全面)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  2. ARM 中可用性集使用的注意事项

    Azure 目前有两种部署模型:经典部署模型 (ASM) 和资源管理器 (ARM).如果您之前使用过 ASM 模式下的可用性集,那么很可能在使用 ARM 模式下的可用性集时,会遇到一些问题或者疑惑.这 ...

  3. web Worker基本使用

    web worker 使用 web worker 是现代浏览器具有的可以处理密集型任务非常便利的解决方案,众所周知,JavaScript是单线程的(一个JavaScript引擎实例只能占用一个线程,线 ...

  4. eclipse中copy qualified name使用方式

    转载自:原文:https://blog.csdn.net/love20yh/article/details/81328202 copy qualified name得到的结果可以有2类: 1./use ...

  5. adb工具包使用方法

    ADB工具包总共有四个文件,两个exe后缀,两个dll后缀.里面还带有fastboot.exe下载后在PC上安装,如安装到D:\adb_tools-2.0目录,确认目录中带有fastboot.exe文 ...

  6. ThinkPHP5.0版本的优势在于:

    更灵活的路由: 依赖注入: 请求缓存: 更强大的查询语法: 引入了请求/响应对象: 路由地址反解生成: 增强的模型功能: API开发友好: 改进的异常机制: 远程调试支持: 单元测试支持: 命令行工具 ...

  7. June 12th 2017 Week 24th Monday

    All the splendor in the world is not worth a good friend. 人世间所有的荣华富贵都比不上有一个好朋友. It's great to have a ...

  8. June 07th 2017 Week 23rd Wednesday

    Failure is the condiment that gives success its flavor. 失败是让成功变美味的调味料. There are kinds of flavors in ...

  9. Angular 引用库

    <!doctype html> <html ng-app> <head> <script src="http://code.angularjs.or ...

  10. ASP.NET整体运行机制+asp.net请求管道+页面生命周期