CodeIgniter Active Record: Load One Row at a Time(CodeIgniter Active Record:一次加载一行)
问题描述
文档中描述的正常 result()
方法似乎会立即加载所有记录.我的应用程序需要加载大约 30,000 行,一次加载一个,将它们提交给第三方搜索索引 API.显然,一次将所有内容加载到内存中效果不佳(由于内存过多而出错).
The normal result()
method described in the documentation appears to load all records immediately. My application needs to load about 30,000 rows, and one at a time, submit them to a third-party search index API. Obviously loading everything into memory at once doesn't work well (errors out because of too much memory).
所以我的问题是,我怎样才能达到传统 MySQLi API 方法的效果,在这种方法中,您在循环中一次加载一行?
So my question is, how can I achieve the effect of the conventional MySQLi API method, in which you load one row at a time in a loop?
推荐答案
这是您可以做的事情.
while ($row = $result->_fetch_object()) {
$data = array(
'id' => $row->id
'some_value' => $row->some_field_name
);
// send row data to whatever api
$this->send_data_to_api($data);
}
这将在一次获得一行.查看 CodeIgniter 源代码,你会看到他们会在你执行 result() 方法时这样做.
This will get one row at the time. Check the CodeIgniter source code, and you will see that they will do this when you execute the result() method.
这篇关于CodeIgniter Active Record:一次加载一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:CodeIgniter Active Record:一次加载一行
- 正确分离 PHP 中的逻辑/样式 2021-01-01
- 带有通配符的 Laravel 验证器 2021-01-01
- SoapClient 设置自定义 HTTP Header 2021-01-01
- 没有作曲家的 PSR4 自动加载 2022-01-01
- Laravel 仓库 2022-01-01
- 如何定位 php.ini 文件 (xampp) 2022-01-01
- 从 PHP 中的输入表单获取日期 2022-01-01
- PHP Count 布尔数组中真值的数量 2021-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- Mod使用GET变量将子域重写为PHP 2021-01-01