我有一个问题让我疯了一段时间,但无法找到解决方案:-(
我不时会在wordpress / woocommerce网站上收到此错误消息
致命错误:在1842行的xxxxx / wp-includes / wp-db.php中,允许的内存大小为201326592字节耗尽(尝试分配1048576字节)
刷新后,页面会定期加载。
我检查了wp-db.php中引用的行,它是这段代码:
$num_rows = 0;
if ( $this->use_mysqli && $this->result instanceof mysqli_result ) {
while ( $row = mysqli_fetch_object( $this->result ) ) {
$this->last_result[$num_rows] = $row;
$num_rows++;
}
在搜索网络时,我发现了一些解决方案的提示,比如检查MySQLi,扩大php内存,优化数据库(删除孤立的meta-and和WPs自动数据库优化),但没有一个有效。主机说内存对服务器的负载没有任何问题,但这是一些编码问题
知道我怎么能找到需要修理的问题吗?
我试过ini_set('memory_limit', '-1');
hack让php内存无限(我知道这不是一个好习惯),但它没有帮助。
知道如何追查这个问题,哪些代码会造成混乱?
答案 0 :(得分:-1)
尝试使用函数mysqli_result :: fetch_all
并自己迭代结果,避免无限循环......可以解决你的问题可能是^^
if ( $this->use_mysqli && $this->result instanceof mysqli_result ) {
$results = mysqli_fetch_all($this->result);
foreach($result as $r) {
//do stuff
}
}