文档中描述的正常result()
方法似乎立即加载所有记录.我的应用程序需要加载大约30,000行,并且一次一个,将它们提交给第三方
搜索索引API.显然,一次将所有
内容加载到内存中并不能很好地工作(由于内存过多而导致
错误).
所以我的问题是,如何实现传统MySQLi API方法的效果,在循环中一次加载一行?
这是你可以做的事情.
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()方法时它们将执行此操作.