Хорошо, поэтому я помогаю кому-то со своим сайтом. Их оригинальный кодер подумал, что было бы неплохо поместить всю свою базу данных в массив.
Я просматриваю каждую часть данных в массиве и вставляю ее в новую таблицу mysql, которую я создал, строки вставляются просто отлично, но проблема в том, что php не позволит моему скрипту выполнять более 60 секунд.
Как я могу переопределить этот параметр?
Существует классическое решение, использующее set_time_limit (), которое позволяет установить максимальное время выполнения (в секундах) для скрипта.
Тем не менее, вам может понадобиться вставить несколько строк с одним запросом или преобразовать массив в CSV и использовать LOAD DATA, который намного быстрее.
Изменить : примеры
Вставка нескольких строк:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Ссылка: http://dev.mysql.com/doc/refman/5.1/en/insert.html
Использование LOAD DATA:
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
Ссылка: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Решения:
Установите max_execution_time
в 0 в php.ini или используйте set_time_limit()
Запустите PHP-скрипт в командной строке. Ограничение времени для CLI-скриптов жестко запрограммировано на 0.
Выгрузите массив в CSV-файл, а затем используйте LOAD DATA INFILE
чтобы сделать импорт базы данных в 20 раз быстрее, чем вставка одной строки за раз в цикле.
Вы можете использовать функцию set_time_limit () в верхней части страницы, как показано ниже:
set_time_limit(0);
Попробуйте ini_set('max_execution_time', $time_in_seconds);
Источник
Если вы используете mysqli, я бы использовал multi_query для выполнения операций. Все будет работать намного быстрее.