Php CodeIgniter-内存中的结果数组
我不知道这是否是一个有效的编程问题。但是,关于CodeIgniter,有一些东西让我心烦意乱。希望你们这些有多年经验和智慧的人能指导我 这是我的故事 我正在为一个项目使用CodeIgniter和MS SQL。我正在检索超过2000万行的销售数据。现在,我通过创建聚合数据并存储在表中来减少结果。我仍然得到了内存不足的错误 现在,我在想,CodeIgniter的result_array()函数是否将所有结果存储到内存中?我的假设正确吗 如果是,我可以分块加载它吗?假设我加载内存中前100行,然后删除这100行,然后再加载另外100行?所以PHP不会用结果填充我的内存 顺便说一下,我已经使用寻呼机来获取详细数据了。这个问题是有特定目的的。我想展示一份总结报告。我正在使用 我不知道这是否有道理。但这正是我所想的。我想知道发生了什么。或者,您可以建议我可以使用PHP处理大数据的其他选项或设计Php CodeIgniter-内存中的结果数组,php,codeigniter,Php,Codeigniter,我不知道这是否是一个有效的编程问题。但是,关于CodeIgniter,有一些东西让我心烦意乱。希望你们这些有多年经验和智慧的人能指导我 这是我的故事 我正在为一个项目使用CodeIgniter和MS SQL。我正在检索超过2000万行的销售数据。现在,我通过创建聚合数据并存储在表中来减少结果。我仍然得到了内存不足的错误 现在,我在想,CodeIgniter的result_array()函数是否将所有结果存储到内存中?我的假设正确吗 如果是,我可以分块加载它吗?假设我加载内存中前100行,然后删除
希望我解释清楚。非常感谢。谢谢你的建议 我相信您正在寻找鲜为人知的
无缓冲行
功能:
$query = $this->db->query("YOUR QUERY");
while ($row = $query->unbuffered_row())
{
echo $row->title;
echo $row->name;
echo $row->body;
}
此方法返回单个结果行,而不预取整个结果行
与row()一样在内存中生成结果。如果查询包含多行,
它返回当前行并向前移动内部数据指针
您还可以获得一个数组:
$query->unbuffered_row('array'); // associative array
我相信您正在寻找鲜为人知的
无缓冲行
功能:
$query = $this->db->query("YOUR QUERY");
while ($row = $query->unbuffered_row())
{
echo $row->title;
echo $row->name;
echo $row->body;
}
此方法返回单个结果行,而不预取整个结果行
与row()一样在内存中生成结果。如果查询包含多行,
它返回当前行并向前移动内部数据指针
您还可以获得一个数组:
$query->unbuffered_row('array'); // associative array
嗨@Alex,谢谢你的回复。我会看一看,并试图使它在我的项目工作。一旦我有了发现,我会及时更新。非常感谢。嗨@Alex,谢谢你的回复。我会看一看,并试图使它在我的项目工作。一旦我有了发现,我会及时更新。非常感谢。