当前位置:  开发笔记 > 编程语言 > 正文

在Zend Frame Work中使用mysql_unbuffered_query,是否支持?

如何解决《在ZendFrameWork中使用mysql_unbuffered_query,是否支持?》经验,为你挑选了1个好方法。

我需要运行一个查询,它将检索大量的记录.
这意味着我不能使用mysqli的ZF包装器,它深入引擎盖使用mysqli-store-result.那么,ZF中是否有一个使用mysqli mysqli-use-result 链接文本的包装器,该文本将返回Iterator/record-set/resource而不是已经将所有结果加载到内存中的数组,或者我是否需要自己实施吗?



1> Bill Karwin..:

首先,没有Zend Framework数据库适配器使用ext/mysql.有适用于ext/mysqli和ext/pdo_mysql的适配器.

在MySQLi适配器中,它总是调用mysqli_store_result()(参见第250行附近的Zend/Db/Statement/Mysqli.php),这意味着它只支持缓冲的查询结果.Zend Framework目前不支持任何更改此选项的选项,因此您可以尝试自行编辑该行代码以供使用mysqli_use_result().

编辑:在PDO_MySQL适配器中,默认使用缓冲查询.

PHP 5.4.6源代码,文件ext/pdo_mysql/mysql_driver.c,第590行,函数pdo_mysql_handle_factory():

H->buffered = H->emulate_prepare = 1;

请注意,无论使用无缓冲查询,如果调用fetchAll()数据库包装器类,您将获取巨大结果集的所有行,并可能超过PHP的内存限制.因此,您必须开始查询并编写循环以一次一个地获取行.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有