Intereting Posts

вставить в таблицу mysql из файла .txt

У меня есть ситуация, когда мне нужно вставить таблицу mysql из .txt-файла. и данные находятся в формате ниже. как данные слева, так и справа показывают раздельную вставку в 2 столбца. и 3-й номер столбца будет id

koijjh12 : 12 lkoiujjf : 12 uoytresf : 15 kjhgfd56 : 50 

мы можем использовать скрипт php для импорта этого .txt-файла в базу данных mysql.

Вы, конечно, можете сделать это с помощью PHP-скрипта, но лучший способ – использовать синтаксис Infiles для load data infile Mysql следующим образом:

 LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; 

В вашем случае это выглядит так, что поля заканчиваются : так что вы можете легко его изменить следующим образом:

 LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ' : ' LINES TERMINATED BY '\n'; 

Вы можете запустить эту команду из любой функции запроса mysql, вставив ее в качестве запроса. Это будет намного быстрее, чем все, что вы можете сделать в PHP вручную (как при чтении текста на PHP, а затем вставке его в базу данных).

Edit: Имейте в виду, что если вы используете это в строке, вам нужно будет избежать символа \ в символе новой строки с другим \ следующим образом: LINES TERMINATED BY '\\n';

Что-то вроде того:

 <?php $content = file_get_contents("a.txt"); $lines = explode("\n", $content); foreach ($lines as $line) { $row = explode(":", $line); $query = "INSERT INTO tablename SET val1 = '" . trim($row[0]) . "', val2 = '" . trim($row[1]) . "'"; mysql_query($query); } ?>