У меня есть php-скрипт, который берет csv и импортирует его в таблицу mysql. Я провел несколько тестов и обнаружил, что скрипт вставляет только 999 строк за раз. Есть ли такой предел и если да, то где? Майскл или пхп? Например, если бы я использовал файл csv с 2500 строками, были бы вставлены только первые 999 строк. Я сбит с толку. Я установил следующие параметры php на довольно щедрое значение:
php_value upload_max_filesize 999M
php_value post_max_size 999M
php_value max_execution_time 900
php_value max_input_time 900
Я не уверен, что вызывает такое поведение. У меня такое ощущение, что html-форма обрезается, хотя я установил для post_max_size огромное число; Я говорю это, потому что, когда я помещаю переключатель в конец длинной формы, этот переключатель не передается в массив $_POST на следующем шаге.
РЕШЕНО
Хорошо, ребята, спасибо за попытку помочь. Копался в логах и нашел проблему. Как я и подозревал, массив $_POST обрезался. Я просмотрел журналы php и нашел эту запись:
Feb 17 17:12:54 workpc suhosin[3895]: ALERT - configured POST variable limit exceeded - dropped variable 'selected[]' (attacker '192.168.0.175', file '/var/www/html/sandbox/index.php')
Несмотря на то, что я увеличил post_max_size в php, этого было недостаточно. Таким образом, мне пришлось изменить эти два параметра в файле /etc/php5/conf.d/suhosin.ini.
suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000
Я увеличил значение, и это сработало. Все ~3000 строк были импортированы.
suhosin.post.max_vars
иsuhosin.request.max_vars
, чтобы они были идентичными - изменение значения только дляpost
все равно приведет к той же ошибкеPOST variable limit exceeded
, независимо от того, насколько высокое значение вы установите - person Stuart Cardall   schedule 30.03.2018