PHP + MySQL
1905
5
Есть, в общем, проблема... На сервере лежит файл *.csv. Надо данные из него закинуть в таблицу в MySQL. Так вот, написан скрипт, запускается из браузера, и, используя fgetcsv(), он забрасывает строки в таблицу. Если в файле строк немного, ну, положим, около 400 - все нормально добавляется... Если же строк больше, а теоретически, их может быть 8-10 тысяч, но проверялось реально на 5 тысячах, то работа скрипта прерывается по таймауту, браузер выводит пустоту вместо сообщения об окончании процесса... В таблице максимум 700 записей появляется...
Как обойти проще всего?
Вариант с разбивкой файла на несколько не предлагать - не устраивает...
PN
set_time_limit() ?

как вариант попробовать load data infile через CGI или ещё лучше с консоли. Или набодяжить phpMyAdmin.
PN
Может и не самое простое, но как вариант:

Запускать PHP программу, производящую конвертацию как отдельный процесс из скрипта. Программа будет сигнализировать о своем окончании например выставив флаг в базе. При желании можно вообще прогресс там выставлять, чтобы на страничке можно было писать "столько-то записей добавлено" (а скрипт будет проверять/обновлять периодически прогресс), при большом времени исполнения это может иметь смысл. С set_time_limit() простое решение, но нужно заведомо знать максимальное время исполнение скрипта.

ЗЫ. В PHP практически не шарю:улыб:
=SmasH=
В общем, на локально установленном Apache+PHP+MySQL с дефолтными настройками все заработало с добавлением set_time_limit(). Как оно будет работать на чужом сервер - покажут тесты...
PHPMyAdmin на такой большой файл с запросами реагирует скотски - обрывается в 404 Not Found
PN
еще наверное по умолчанию стоит максимальный размер загружаемого файла 2мб
Роман Петров
Стоит, но это некритично - тестовый файл в 12 килозаписей занимает 1.2 метра. Плюс планируется загрузка по FTP, ибо так проще...