postavkin

Рейтинг
601
Регистрация
06.01.2009
webinfo #:

ignore_user_abort();

вкорячил в php.ini такую строку - он ругается. не перезапускает денвера

там такая  ignore_user_abort = on

её раскомментил

webinfo #:

Так поставьте больше:  set_time_limit(2000) например. Кто мешает? Настройки сервера запрещают?

нет, это же локально )

я не понимаю, ну не хватает ему 300сек, почему после прерываться в базе только 6тыс строк )) при том что на хосте 600тыс за это время добавляется


кстати, у меня не set_time_limit,  а max_execution_time... поставил 2000. сейчас ради эксперимента посмотрим.
webinfo #:

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 прикольная вещь, но у меня с ней что то не срослось.

webinfo #:

Уж это элементарная операция, вопрос времени.

Кому не хватает? Кто пишет?

база локальная не хочет кушать файл 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 минуты.

webinfo #:

Ну тогда точно массивы не влезут в память, там гигабайты памяти потребуются.

Понятно. Я сейчас пытаюсь файл в таблицу БД закинуть. Пока безуспешно. Пишет 205511 bytes не хватает

webinfo #:
А файл точно 70 Мбайт? И строк 3 700 000? Вы привели в качестве примера строку размером 60 байт, итого на таком количестве строк получится больше 200 Мбайт.

Прошу прощения если где то ошибся. Файл 250Мб. Строк около 3млн

Ага, уже играюсь с цифрами.

htexture #:

поставить денвер, и на локальной машине провернуть операцию. Там нету лимитов, хоть ставьте всю память своей машины.

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 сделал. не помогает


Также попробовал локально в базу залить файл - тоже ругается на размер файла.

webinfo #:

Я когда советовал 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);

                        
                        
    }

сразу лезет "==ошибочка"

jpg qikz0_m8988n4.jpg

Думаю найду решение.

Всем большое спасибо, что дали советы и уделили время.👍

webinfo #:

Я когда советовал fgets, имел в виду решение проблемы чтения файла, что и отражено в цитировании фразы из стартпоста. А дальше - в БД.

Ясно, спс. Я думал  чтобы fgets перерабатывать строки на лету (но без одного массива точно не обойтись).

А это оказывается чтобы построчно в базу перекинуть файл. Ок.

Всего: 5509