首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Zend框架中使用mysql_unbuffered_query,是否支持?

在Zend框架中使用mysql_unbuffered_query,是否支持?
EN

Stack Overflow用户
提问于 2009-02-19 18:35:08
回答 1查看 1.4K关注 0票数 3

我需要运行一个查询,它将检索大量记录。

这意味着我不能对mysqli使用ZF包装器,因为它在内部使用mysqli-store-result。那么,在ZF中是否有一个包装器来使用mysqli mysqli-use- link text,它将返回一个迭代器/记录集/资源,而不是已经将所有结果加载到内存中的数组,或者我需要自己实现它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-02-19 18:52:59

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

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

edit:在PDO_MySQL适配器中,默认使用缓冲的查询。

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

代码语言:javascript
运行
复制
H->buffered = H->emulate_prepare = 1;

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/566578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档