Форум PHP

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: elenaki   (27.05.2017 в 13:10)
А если нет ошибки? Загружать не надо?
Записать в файл просто - открыть, записать, закрыть.

Я делала запись содержимого файла в базу и при очень больших объемах. Но ошибки не
записывала, а выводила на экран. Надо?




$file_name = $_GET['path'];   /// имя файла брала из URL
$csvFile = $file_name;
$table = str_replace(".csv", "", $csvFile); ///  имя таблицы = имя файла без раширения

  
///создаем таблицу, если ее нет
$sql_create = "CREATE TABLE IF NOT EXISTS `".$table."` (`pole_1` varchar(20) NOT NULL, `pole_2` varchar(10) NOT NULL, PRIMARY KEY (`pole_2`)) ENGINE=MyISAM DEFAULT CHARSET=utf8";
$result = mysqli_query($g_link,$sql_create) or die($sql_create." ".mysqli_error($g_link)); 


if (($handle_f = fopen($file_name, "r")) !== FALSE)  {
  // проверяется, надо ли продолжать импорт с определенного места
  // если да, то указатель перемещается на это место

  if(isset($_GET['ftell'])){
      fseek($handle_f,$_GET['ftell']);
  }
  $i=0;
  if(isset($_GET['x'])){
      $x=$_GET['x'];
  } else {
      $x = 0;
  }
  
 // построчное считывание и анализ строк из файла
  while ( ($data_f = fgetcsv($handle_f, 1000, ","))!== FALSE) {
 
 $data_str = explode(";", $data_f[0]);
      
      
                              
              $sqlquery = "INSERT IGNORE INTO `".$table."` (`PolicyEnd`, `phone`) ";
              $sqlquery .= ' VALUES ("'.$data_str[0].'", "'.$phone.'") ';              
         
              $result_ins = @mysqli_query($g_link, $sqlquery); /// or die($sqlquery." ".mysqli_error($g_link));                 
 

      if(!strstr($i/5000,'.')){
        print 'Importing record #: '.$x.'<br />';
        flush();
        ob_flush();
      }
        
      if($i==20000){
          
          print '<meta http-equiv="Refresh" content="0; url='.$_SERVER['PHP_SELF'].'?x='.$x.'&amp;ftell='.ftell($handle_f).'&amp;path='.$_GET['path'].'">';
        exit;
      }
      $x++;
      $i++;
        
  }

  fclose($handle_f);
} else {$err = 1; echo "Cannot open file!";}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: