Я работаю над одноразовым PHP (5.2.6) script, который переносит несколько миллионов строк базы данных MySQL (5.0.45) в другой формат в другой таблице, сохраняя (много) релевантных данных в памяти для инкрементных вычислений. Данные вычисляются постепенно. (в кусках около 1000 строк)
script неожиданно останавливается в случайных точках без сообщения об ошибке. Мой вопрос: как я могу узнать, в чем причина остановки script. (таймаут отключения памяти MySQL и т.д.)
У меня есть set_time_limit (0); поэтому это не время ожидания PHP.
см. файл журнала, возможно, это память
вам нужно добавить больше памяти
в параметре php.ini memory_limit
Вы пытались запустить PHP из командной строки, а не через веб-браузер? Может быть, сервер имеет что-то, что заставляет его упасть, когда оно достигнет определенного использования памяти?
В общем случае операции с массой не должны выполняться с помощью веб-сервера, что может привести к их провалу.
Вы можете попробовать повысить уровень сообщений об ошибках (в php.ini) на самом высоком уровне, поэтому он жалуется на большее количество вещей.
Мое первое предположение заключалось в том, что вы ударили ограничение времени выполнения или ограничение памяти, а script было прервано, но вы это поняли.
error_reporting(E_ALL | E_STRICT);
Спасибо всем за помощь (я проголосовал за соответствующие ответы). Проблема была в памяти и установке ini_set ('memory_limit', '200M'); (он один раз script)