Mysql MediumText вызывает фатальную ошибку PHP: допустимый объем памяти 8388608 байт исчерпан - PullRequest
1 голос
/ 01 февраля 2009

У меня есть свой собственный объектный класс php, который оборачивает библиотеку mysqli. Он отлично работает с большинством типов данных, включая текст. Как только я изменяю столбец таблицы с текста на средний текст, я получаю сообщение об ошибке, описанное в заголовке этого вопроса. Я тестировал свои php-скрипты в нескольких средах общего хостинга, и я получаю эту ошибку только в одном из них.

Действительно ли MediumText и LongText занимают столько памяти?

Я начну оптимизировать свои классы php, но я хочу убедиться, что я на правильном пути ..

Ответы [ 3 ]

4 голосов
/ 01 февраля 2009

средний текст может содержать до 16777215, как указано в http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

Казалось бы, это> ваш предел памяти, как определено php. Так что это имеет смысл.

2 голосов
/ 01 февраля 2009

Поля со средним и длинным текстом потенциально могут содержать столько информации. Вы просто меняете тип столбца или меняете тип столбца, а затем глушите его полным текстом? Если это первое, я думаю, что есть какая-то бегущая петля / рекурсия, которая создает кучу объектов / массивов / что-то, и вы достигаете предела памяти PHP по умолчанию.

Вы можете контролировать количество памяти, выделенной PHP через php.ini, или использовать функцию ini_set для установки значений во время выполнения.

ini_set("memory_limit","12M");
1 голос
/ 01 февраля 2009

Этот хостинг-провайдер, вероятно, имеет PHP, разрешающий скрипту только 8 мегабайт памяти.

memory_limit = 8M; Максимальный объем памяти, который скрипт может потреблять

Вы можете проверить, на что это установлено, используя phpinfo (), создать скрипт со следующим, загрузить его и указать на него свой веб-браузер (убедитесь, что вы удалили его, как только он выдаст потенциально конфиденциальную информацию): 1007 *

<? PHP </p>

phpinfo ()

?>

Ищите «memory_limit» внизу. Если он установлен на 8 мегабайт, это ваша проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...