PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别

 更新时间:2014年09月29日 08:48:54   转载 作者:robertaqi  
这篇文章主要介绍了PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别,本文给出了这两个参数的5个区别,需要的朋友可以参考下

虽然nosql变得流行,但是我感觉sql还是主流
今天在翻php manul的时候,发现mysqli 的查询可以传递一个有意思的参数

复制代码 代码如下:

@mysqli_query($this->sql,$SQL,($method ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT));

在php manul上面对这两个参数是这样解释的。

复制代码 代码如下:

Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

如果什么也不传,那就默认为MYSQLI_STORE_RESULT。

在phpmanul上面有人说了这样一句话If we have to retrieve large amount of data we use MYSQLI_USE_RESULT

其实这两个参数的区别还是很大的。

(1)区别在于从服务器上检索结果集的行。
(2)MYSQLI_USE_RESULT 启动查询,但实际上并未获取任何行
(3)MYSQLI_STORE_RESULT 立即检索所有的行
(4)MYSQLI_STORE_RESULT 从服务器上检索结果集时,就提取了行,并为之分配内存,存储到客户机中,随后调用 mysqli_fetch_array()就再也不会返回错误,因为它仅仅是把行脱离了已经保留结果集的数据结构,mysqli_fetch_array()返回 NULL始终表示已经到达结果集的末端。
(5)MYSQLI_USE_RESULT 本身不检索任何行,而只是启动一个逐行的检索,就是说必须对每行调用 mysqli_fetch_array()来自己完成。既然如此,虽然正常情况下,mysqli_fetch_array()返回NULL仍然表示此时已到达结果集的末端,但也可能表示在与服务器通信时发生错误。

总结

与MYSQLI_USE_RESULT相比,MYSQLI_STORE_RESULT 有着较高的内存和处理需求,因为是在客户机上维护整个结果集,所以内存分配和创建数据结构的耗费是非常巨大的,如果想一次检索多个行,可用 MYSQLI_USE_RESULT。

MYSQLI_USE_RESULT有着较低的内存需求,因为只需给每次处理的单行分配足够的空间。这样速度就较快,因为不必为结果集建立复杂的数据结构。另一方面,MYSQLI_USE_RESULT把较大的负载加到了服务器上,它必须保留结果集中的行,直到客户机看起来适合检索所有的行。

相关文章

  • 功能强大的php分页函数

    功能强大的php分页函数

    这篇文章主要为大家分享了功能强大的php分页函数,为php初学者分析一下php分页实现方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • php+mysql结合Ajax实现点赞功能完整实例

    php+mysql结合Ajax实现点赞功能完整实例

    这篇文章主要介绍了php+mysql结合Ajax实现点赞功能,以一个完整实例形式详细分析了实现点赞功能中涉及的html页面、Ajax功能及php方法的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • PHP控制网页过期时间的代码

    PHP控制网页过期时间的代码

    有时我们需要控制主页之类的网页过期时间。但我们比如使用的是Chinacache的CDN,那要怎么样设计才能让他缓存我的内容.
    2008-09-09
  • php实现PDO中捕获SQL语句错误的方法

    php实现PDO中捕获SQL语句错误的方法

    这篇文章主要介绍了php实现PDO中捕获SQL语句错误的方法,结合实例形式分析了PDO中常见的错误、警告及异常模式相关属性设置与使用技巧,需要的朋友可以参考下
    2017-02-02
  • 解析左右值无限分类的实现算法

    解析左右值无限分类的实现算法

    本篇文章是对php左右值无限分类的实现算法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php上传大文件设置方法

    php上传大文件设置方法

    本文给大家分享的是在php中如何设置才能实现大文件上传的方法,十分的实用,有需要的小伙伴可以参考下
    2016-04-04
  • php实现在限定区域里自动调整字体大小的类实例

    php实现在限定区域里自动调整字体大小的类实例

    这篇文章主要介绍了php实现在限定区域里自动调整字体大小的类,实例分析了php操作图片及字体的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • fleaphp crud操作之find函数的使用方法

    fleaphp crud操作之find函数的使用方法

    fleaphp crud操作之find函数的用法,需要的朋友可以参考下。
    2011-04-04
  • PHP简单实现无限级分类的方法

    PHP简单实现无限级分类的方法

    这篇文章主要介绍了PHP简单实现无限级分类的方法,涉及sql语句及递归调用的相关技巧,需要的朋友可以参考下
    2016-05-05
  • Win下如何安装PHP的APC拓展

    Win下如何安装PHP的APC拓展

    这篇教程我们会告诉大家如何在windows上安装APC。我已经在windows server 2003上成功测试。当然,在你也可以使用windows xp做为测试服务器
    2013-08-08

最新评论