У меня есть ситуация, когда мне нужно вставить таблицу 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); } ?>