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:一次加载一行
基础教程推荐
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- 如何替换eregi() 2022-01-01
