Установить максимальное время выполнения в MYSQL / PHP

У меня есть XML-документ, который имеет около 48 000 детей (~50 МБ). Я запускаю запрос INSERT MYSQL, который делает новые записи для каждого из этих детей. Проблема в том, что это занимает много времени из-за его размера. После его выполнения я получаю это

Fatal error: Maximum execution time of 60 seconds exceeded in /path/test.php on line 18

Как установить максимальное время выполнения неограниченным?

спасибо

4 ответов


вы можете сделать это, установив set_time_limit в php-коде (установлено значение 0 без ограничений)

set_time_limit(0);

или изменение значения max_execution_time непосредственно в вашем php.ini

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 120  

или изменение его с помощью ini_set ()

ini_set('max_execution_time', 120); //120 seconds

но обратите внимание, что для этого 3-го варианта:

max_execution_time

вы не можете изменить этот параметр с помощью ini_set() при работе в safe режим. Единственный обходной путь - отключить safe режим или изменить ограничение по времени в php.ini.

источник www.php.net


поместите это в верхней части скрипта:

ini_set('max_execution_time', 300);

это займет 5 минут.


вы можете использовать ini_set в начале вашего приложения.

ini_set('max_execution_time', *number of seconds here*); //300 seconds = 5 minutes

вы можете установить максимальное время выполнения в MYSQL / PHP. это так просто.

чтобы установить максимальное время выполнения в одном файле PHP, поместите этот код сразу после первого открытия тега php.

ini_set(‘max_execution_time’, 0)

установить максимальное время выполнения в PHP.ini-файл. Вы можете установить согласно вашему требуют.

max_execution_time=360 //360 seconds = 6 minutes

чтобы установить максимальное время выполнения в файле htaccess.

php_value max_execution_time 0

вы можете читать шаг за шагом здесь.