Ошибка исчерпания памяти PHP

Я знаю, что это может показаться очень глупым, но я полный новичок в программировании и очень расстроен этой ошибкой.

Неустранимая ошибка: разрешенный объем памяти 134217728 байт исчерпан (попытка выделить 7059335 байт) в C: \ TOM Files \ wamp \ www \ program_exer_1 \ index.php в строке 2

Я хочу знать, что это значит и каковы возможные решения для этого. Пожалуйста помоги.


person Newbie Coder    schedule 05.05.2011    source источник
comment
возможно, вы столкнулись с бесконечным циклом, покажите код, тогда кто-нибудь может помочь   -  person jimy    schedule 05.05.2011
comment
Это означает, что ваша программа попыталась использовать более 128 МБ памяти. Это много для PHP-скрипта. Вы почти наверняка пытаетесь загрузить в память большой объем данных (записи базы данных или содержимое файла) за один раз. Вам должно быть довольно очевидно, где ваша программа делает что-то подобное. Перепишите его так, чтобы результаты обрабатывались по несколько раз, вместо того, чтобы загружать их все в память заранее.   -  person Jon    schedule 05.05.2011
comment
Хороший комментарий, Джон. Подумайте о том, чтобы превратиться в ответ.   -  person chiborg    schedule 05.05.2011
comment
Это уже решено. Да, очень большие данные. 76 таблиц. Я знаю ответ Кристофера.   -  person Newbie Coder    schedule 05.05.2011


Ответы (2)


Попробуйте увеличить лимит памяти PHP в php.ini, если у вас есть доступ, отредактировав следующую строку:

memory_limit = 128M

Или добавив эту строку в определенные скрипты:

ini_set("memory_limit","128M");
person Kit    schedule 05.05.2011
comment
Если вы прочтете вопрос более внимательно, вы увидите, что лимит памяти уже составляет 128M. - person Jon; 05.05.2011
comment
есть ini_set в конфиге? - person Newbie Coder; 05.05.2011
comment
@Jon Я полный нуб. Я знаю его проблему с памятью, но не знаю, где ее найти ... - person Newbie Coder; 05.05.2011
comment
Помогло .. Сработало !!! Я изменил его в php.ini и установил memory_limit = 256M. - person Newbie Coder; 05.05.2011

Я видел, что это несколько раз было вызвано повреждением таблиц MySQL. Как это вызывает именно эту ошибку, я понятия не имею. Но на всякий случай вы можете проверить и восстановить базу данных MySQL.

mysqlcheck -rA
person tylerl    schedule 05.05.2011
comment
Я решил это. Просто изменил memory_limit в php.ini. В любом случае, я рассмотрю ваш совет по поводу моего будущего обучения. Спасибо братан за дополнительную информацию ... - person Newbie Coder; 05.05.2011