За последние 24 часа нас посетили 18519 программистов и 1707 роботов. Сейчас ищут 840 программистов ...

чтение и запись большого текстового файла в базу

Тема в разделе "PHP и базы данных", создана пользователем sergjio, 29 июн 2011.

  1. sergjio

    sergjio Активный пользователь

    С нами с:
    29 июн 2011
    Сообщения:
    1
    Симпатии:
    0
    Есть текстовай файл ~ 13мб и 300000 строк
    Необходимо все это содержимое впихнуть в базу данных.

    Написан скрипт 123.php, который который открывает файл, чистит таблицу и построчно начинает вносить данные в базу. Но!
    Запускаю из строки браузера.
    С малым количеством строк ~100000 все работает нормально, а вот с большим ~300000 начинаются проблемы.
    А именно, скрипт как бы перезапускается с определенного количества строк и снова стирает таблицу и заново заполняется и так по кругу. До конца файла так и не доходит.
    Файл открывал разными способами - результат один.
    В чем может быть проблема? В Хостинге?
    Как предотвратить перезапуск скрипта?
    Вот скрипт


    Код (Text):
    1.  
    2.  
    3. $file="123.txt";
    4.  
    5.     if(filesize($file)>10) {
    6.    
    7.         require_once("connect.php");
    8.  
    9.         $q="DELETE FROM base";
    10.         mysql_query($q);
    11.    
    12.         $q="ALTER TABLE `base` AUTO_INCREMENT=1";
    13.         mysql_query($q);
    14.        
    15.         $fd=fopen($file,'r');
    16.         $i=0;
    17.         while($str=fgets($fd,10000)){
    18.                 $i++;
    19.                 $str=htmlspecialchars(AddSlashes(rtrim($str)));
    20.                 $arr=split("\t",$str);
    21.  
    22.                 $q="INSERT INTO base(num,name,sale,logo_id) VALUES('".$arr[0]."','".$arr[1]."','".$arr[2]."','".$arr[4]."')";
    23.                 mysql_query($q);
    24.         }
    25.  
    26.         fclose($fd);
    27.         $fd=fopen($file,"w");
    28.         fclose($fd);
    29. }