我正在 CMS/框架中创建一个名为Processwire的网站,现在我确实想用从数据库结果中收集的值(在 processwire 中称为页面)填充一些数组。现在发生的事情是我得到一个内存错误,我知道我应该提高内存限制,但这感觉不对,因为页面甚至会变得越来越多,然后它已经因此负载会变得更大,我可能会结束up 进一步增加内存限制。现在我想从大堆中挑选一批并处理它们,然后挑选下一批。这是导致崩溃的部分:
for($i = 0; $i<=$count_log; $i+=100)
{
$all_log_files = $pages->find("template=logs, start=$i, limit=100");
foreach($all_log_files as $log_file)
{
$u++;
if(empty($actions["$log_file->action"]))
{
$actions[$log_file->action] = 1;
}
if(empty($ips["$log_file->ip"]))
{
$ips[$log_file->ip] = 1;
}
if(empty($values["$log_file->value"]))
{
$values[$log_file->value] = 1;
}
if(empty($results["$log_file->result"]))
{
$results[$log_file->result] = 1;
}
}
}
现在你可以看到我已经尝试制作“批次”但我失败了,因为我仍然会收到错误......
我该怎么做才能解决这个问题,或者我无能为力,我应该提高内存限制吗?
编辑:
具体错误: 致命错误:第47行/xxx/xxx/xxx/xxx/wire/core/DatabaseQuery.php中允许的内存大小为33554432字节耗尽(试图分配6字节)