文档中描述的正常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()方法时它们将执行此操作.