У меня есть php-скрипт, который принимает csv и импортирует его в таблицу mysql. Я сделал несколько тестов, и я узнал, что скрипт вставляет только 999 строк за раз. Есть ли такой предел, и если да, то где? Mysql или php? Например, если бы я использовал файл 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 строк были импортированы.
Я полагаю, что нет ограничений на импорт CSV, но я бы использовал что-то вроде этого для импорта данных из CSV
LOAD DATA INFILE 'mydata.csv' INTO TABLE YOUR_TABLE FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';