Я хочу импортировать данные из txt-файла в mysql в php
Мой txt-файл:
Id name rollno grno inoutdatetime 1 test 1 1 10/4/2015 05:20:00 2 test2 2 2 11/4/2015 08:20:00
И у меня нет вставки какого-либо дублирования строки данных даты
Создайте таблицу базы данных с столбцами в соответствии с вашими потребностями.
CREATE TABLE yourTableName ( Id int, name varchar(100), rollno int, grno int, inoutdatetime varchar(100) ) ENGINE=InnoDB;
Если ваш txt-файл соответствует тому же формату, что и ваш пример.
$fhandle=fopen("textfile.txt", "r"); fgets($fhandle); //First fgets to read over header line. while($line=fgets($fhandle)){ //Explode your line by space delimeter $words=explode(" ",$line); /* Do additional checks and data sanitizing here. */ //If every line follows the format in your example, and is not empty, insert into table here $sql="INSER INTO yourTableName VALUES ($words[0], $words[1], $words[2], $words[3], $words[4])"; }
в$fhandle=fopen("textfile.txt", "r"); fgets($fhandle); //First fgets to read over header line. while($line=fgets($fhandle)){ //Explode your line by space delimeter $words=explode(" ",$line); /* Do additional checks and data sanitizing here. */ //If every line follows the format in your example, and is not empty, insert into table here $sql="INSER INTO yourTableName VALUES ($words[0], $words[1], $words[2], $words[3], $words[4])"; }
Это всего лишь общий обзор. Я уверен, что есть больше вещей, которые нужно учитывать, например, для дезинфекции данных, проверки нулей / дубликатов, безопасности для SQL-инъекций, типов столбцов реструктуризации и т. Д.
Надеюсь это поможет!! 🙂
Я предлагаю вам использовать функцию explode () в PHP. Сначала вы можете взорвать линии, а затем пробелы.
Это будет выглядеть так:
$linesList = explode(PHP_EOL, $txt_file); foreach($linesList as $Line){ $words = explode(' ',$line); }
ВЫХОД НА ЛИНИЮ
$ words [0] = Id
$ words [1] = name
$ words [2] = rollno
$ words [3] = grno
$ words [4] = inoutdatetime
Как вы получаете txt? Почему бы не использовать CVS вместо этого?
Вы можете удалить сначала дублированные строки, сделав следующее:
Удалить дубликаты данных в текстовом файле с помощью php
Теперь, когда у вас есть чистый txt, вы можете получить содержимое файла, используя следующий код
$handle = fopen("inputfile.txt", "r"); if ($handle) { while (($line = fgets($handle)) !== false) { // process the line read. } fclose($handle); } else { // error opening the file. }
Проверьте ссылку для получения дополнительной информации. Как читать файл по строкам в php