Я загружаю текстовый файл с примерно 30 000 строк в Mysql-DB.
Загрузка всегда прерывается ровно после 3203 строк. Сплит-файл, содержащий менее 3203 строк, работает нормально. Проблема, конечно, не в строке 3203. Скорее в Mysql-конфигурации (например, max_nbrs_of_inserts) строки
выглядят следующим образом:
...
09.01.92,06:59:27, 34,1322, 31, 2,06:59:27,00:00:00, 16.00, 0.00
...
Каждая из этих строк будет генерировать SQL-INPUT как следующий пример:
$query = "INSERT INTO tmp_GF
(
fldGFDATUMZEIT,
fldNUMMER,
fldRespond,
fldGFP,
fldBesNr,
fldBEGINN,
fldDAUER,
fldVORRAT,
fldVERZEHR,
fldSave,
fldZeig
)values(
'$GFDATUMZEIT',
$NUMMER,
$Respond,
$GFP,
$BesNr,
'$BEGINN',
'$DAUER',
$VORRAT,
$VERZEHR,
0,
'$Zeig') ";
php.ini И настройки загрузочного скрипта:
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 3000);
ini_set('max_execution_time', 3000);
Ubuntu версия 11.10
Версия Mysql
protocol_version 10
version 5.1.58-1ubuntu1
MySQL имеет свой собственный максимальный размер для одного запроса под названием max_allowed_packet . По умолчанию это небольшое значение (по умолчанию MySQL составляет 1 МБ, ваш дистрибутив может быть больше), но его можно увеличить до 1 ГБ.
Увеличение его не повредит производительности для существующих запросов. Причина, по которой он установлен по умолчанию небольшим, заключается в простом обнаружении ошибок, которые могут возникнуть, если вы не ожидаете очень больших пакетов.
Теперь, вы не упомянули конкретное сообщение об ошибке, но если я правильно угадал причину вашей проблемы, MySQL, вероятно, сгенерирует это сообщение об ошибке («Слишком большой пакет» на сервере и «Потерянное соединение с сервером MySQL во время запроса» или подобное на клиенте).