ignore_user_abort();
вкорячил в php.ini такую строку - он ругается. не перезапускает денвера
там такая ignore_user_abort = on
её раскомментил
Так поставьте больше: set_time_limit(2000) например. Кто мешает? Настройки сервера запрещают?
нет, это же локально )
я не понимаю, ну не хватает ему 300сек, почему после прерываться в базе только 6тыс строк )) при том что на хосте 600тыс за это время добавляется
set_time_limit(сколько надо секунд);
Если через браузер, то ещё это:ignore_user_abort();
set_time_limit 300
сообщение Fatal error: Maximum execution time of 300 seconds exceeded in было и при 60 и при 120.
Вообщем. Я разбил файл на 6. По 500Мб. Заливаю на хост в базу. Думаю это решение. Denwer прикольная вещь, но у меня с ней что то не срослось.
Уж это элементарная операция, вопрос времени.
Кому не хватает? Кто пишет?
база локальная не хочет кушать файл 275Мб. В файле ini было 256 , теперь уже по 500 лимиты, ответ один и тот же " 205511 bytes не хватает "
Разделил файл на 2 по 135мб +-, запустил импорт первого. Комп задумался, надолго
Уха ха теперь это
Fatal error: Maximum execution time of 300 seconds exceeded in D:\home\localhost\www\Tools\phpmyadmin\libraries\dbi\mysqli.dbi.lib.php on line 247
при этом в таблицу добавилось 6000 строк, за около 3 минуты процесса, из 1.5млн. ну это жесть. видимо мне не судьба это сделать )
ps на хосте около 700 тыс строк добавляется за 3 минуты.
Ну тогда точно массивы не влезут в память, там гигабайты памяти потребуются.
Понятно. Я сейчас пытаюсь файл в таблицу БД закинуть. Пока безуспешно. Пишет 205511 bytes не хватает
Прошу прощения если где то ошибся. Файл 250Мб. Строк около 3млн
Ага, уже играюсь с цифрами.
поставить денвер, и на локальной машине провернуть операцию. Там нету лимитов, хоть ставьте всю память своей машины.
http://www.denwer.ru/
Попробовал скриптом локально обработать файл. Строка 29 дает ошибку. Это $file = file($fajl1);
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 282370021 bytes) in D:\home\test1.ru\www\index.php on line 29
Как увеличить место под БД нашел, а вот как допустить это - не смог.
memory_limit = 256M ;
в php.ini сделал. не помогает
Также попробовал локально в базу залить файл - тоже ругается на размер файла.
Я когда советовал fgets, имел в виду решение проблемы чтения файла, что и отражено в цитировании фразы из стартпоста. А дальше - в БД.
Уперся в непонятную ошибку, подскажите, плз что делаю не так ?
$handle = @fopen("file/test.csv", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { // echo $buffer; $cvcvcvcv++; if ($cvcvcvcv == 1 ) {echo "<br>обработано $cvcvcvcv";} if ($cvcvcvcv == 100 ) {echo "<br>обработано $cvcvcvcv";} if ($cvcvcvcv == 1000 ) {echo "<br>обработано $cvcvcvcv";} if ($cvcvcvcv == 10000 ) {echo "<br>обработано $cvcvcvcv";} if ($cvcvcvcv == 100000 ) {echo "<br>обработано $cvcvcvcv";} if ($cvcvcvcv == 300000 ) {echo "<br>обработано $cvcvcvcv";} $vbzx = array(); $stroka = $buffer; $vbzx = explode('"', $stroka);// ТУТ ВРЕМЕННО ТАК ПОНЯТЬ В ЧЕ ОШИБКА, переменные поставлю потом $result2 = mysql_query ("INSERT INTO `test` (`1`, `2`, `3`, `4`, `5`, `6`, `7`) VALUES ('sa2312dg', 's23432df', '', '', '', '', '')") or die('<b>==ошибочка</b>'); mysql_free_result($result2); }
сразу лезет "==ошибочка"
Думаю найду решение.
Всем большое спасибо, что дали советы и уделили время.👍
Ясно, спс. Я думал чтобы fgets перерабатывать строки на лету (но без одного массива точно не обойтись).
А это оказывается чтобы построчно в базу перекинуть файл. Ок.