wp-db.php内存耗尽的致命错误问题

时间:2017-02-04 10:08:50

标签: php mysql wordpress mysqli woocommerce

我有一个问题让我疯了一段时间,但无法找到解决方案:-(
我不时会在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内存无限(我知道这不是一个好习惯),但它没有帮助。
知道如何追查这个问题,哪些代码会造成混乱?

1 个答案:

答案 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
  }
}