2017-02-04 143 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'或該文件中的任何行。 –

相關問題