Как определить причину PHP ошибки "Allowed memory size"?

Рейтинг: 0Ответов: 1Опубликовано: 14.01.2015

На сайт загружаются файлы (песни), при том файл (содержимое) сохраняется в базу (таковы требования были, чтобы файлы в базе сохранялись). Поле, куда сохраняется содержимое, имеет тип "mediumblob". Все работает нормально.

Но при попытке загрузить файл, который весит 70мб, выдается ошибка:

"Fatal error: llowed memory size of 268435456 bytes exhausted (tried to allocate 154488859 bytes) in /home/admin/web/mysite.com/public_html/library/Zend/Db/Statement/Pdo.php on line 228"

228 строка: return $this->_stmt->execute($params);
То есть при попытке выполнить запрос к базе.

Пытался манипулировать параметром "memory_limit". Ставил разные значения 256М, 512М, 1G, 3072М, но ситуация оставалась прежней.

По словам сисадмина, который работал с серваком и настраивал его, сервер имеет 16Гб оперативной памяти. То есть, по сути, ему должно ее хватить.

Как можно более-менее детально определить причину ошибки, чтобы знать, что и как настроить, чтобы ее исправить?

Спасибо.

Ответы

▲ 1

Попробуй в PDO установить параметр PDO::MYSQL_ATTR_USE_BUFFERED_QUERY