2009-02-01 51 views
1

我有我自己的PHP數據對象類,它包裝mysqli庫。它可以很好地處理大多數數據類型,包括文本。只要我將表格列從文本更改爲中文,就會得到此問題標題中描述的錯誤。我已經在幾個共享主機環境中測試了我的php腳本,並且我只在其中一個環境中出現了這個錯誤。Mysql MediumText導致PHP致命錯誤:允許內存大小爲8388608字節用盡

MediumText和LongText是否真的用盡了那麼多內存?

我將開始我的優化PHP類,但我要確保我在正確的軌道上..

回答

2

mediumtext和longtext字段可能會保存那麼多信息。你只是改變列的類型,還是改變列的類型,然後把文本填滿?如果它是前者,我的猜測是會有一些逃跑循環/遞歸,它們構建了一堆對象/數組/事件,並且正在實現PHP的默認內存限制。

您可以通過php.ini控制分配給PHP的內存量,也可以使用ini_set函數在運行時設置這些值。

ini_set("memory_limit","12M"); 
+0

謝謝,我把它放在20M,一切正常!我很驚訝共享主機可以讓我請求更多的內存......我想我可以從ini_set()中擠出的內存量有限制嗎? – John 2009-02-01 14:40:19

1

該託管服務提供商可能已將PHP設置爲僅允許腳本8 MB的內存。

memory_limit = 8M ; Maximum amount of memory a script may consume

您可以檢查一下這個被設置爲使用phpinfo()函數創建一個腳本,用下面的,上傳它,它指向你的網頁瀏覽器(確保你刪除它做一次,因爲它給掉潛在的敏感信息):

<?php

phpinfo()

?>

在底部尋找「memory_limit」。如果它設置爲8兆字節,那就是你的問題。

相關問題