2017-02-04 142 views
-2

我有一个问题,驱使我坚持了一段时间,并且找不到解决方案:-(
不时地我得到这个错误在我们的wordpress/woocommerce网站上发送消息 致命错误:允许的内存大小为201326592字节耗尽(试图分配1048576字节)在xxxxx/wp-includes/wp-db.php上线1842 刷新后,页面定期加载wp-db.php内存耗尽的致命错误问题

我检查了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内存,优化数据库(删除孤立的post-meta和WPs自动数据库优化),但都没有工作。主机表示内存与服务器的负载没有任何问题,但这是一些编码问题。
任何想法如何找到需要修复的问题?
我尝试了ini_set('memory_limit', '-1');黑客使php内存无限(我知道这不是一个好习惯),但它没有帮助。
任何想法如何追溯这个问题,哪些代码会造成混乱?

+0

有时这些各种各样的错误消息可能会让你失望。尽管PHP在'wp-db.php'中引用了一行,而这不是实际问题所在。 –

+0

[允许的内存大小33554432个字节已耗尽(尝试分配43148176个字节)in php](http://stackoverflow.com/questions/415801/allowed-memory-size-of-33554432-bytes-exhausted-tried -to-allocate-43148176-byte) – ManuSharma

+0

我试过ini_set('memory_limit','-1');正如另一篇文章中的建议,但它并没有帮助我:-( – Gas

回答

-1

尝试使用功能mysqli_result :: fetch_all

并反复导致自己,避免inifinite环......就能解决你的问题可能是^^

if ($this->use_mysqli && $this->result instanceof mysqli_result) { 
    $results = mysqli_fetch_all($this->result); 
    foreach($result as $r) { 
    //do stuff 
    } 
} 
+0

谢谢,但是我真的应该改变wordpress'wp-db.php吗?在功能和更新方面不是不明智的吗?或者我应该改写functions.php中的函数? – Gas

+0

@Gas绝对不是! 。问题不在于'wp-db.php'或该文件中的任何行。 –

相关问题