Как импортировать файл .txt в базу данных mysql в разных таблицах - PullRequest
0 голосов
/ 26 февраля 2019

Мне интересно импортировать этот 5000-строчный .txt файл в базу данных mysql.

 P|1|A PRODUCT|1|0002000|204|123|
 P|2|ANOTHER PRODUCT|10000371|0001990|055|031|
 B|055|A BRAND NAME|
 B|204|ANOTHER BRAND NAME|
 G|123|GROUP NAME|
 G|031|ANOTHER GROUP NAME|
 

Где P означает, что строка относится к таблице «Продукт», B означает таблицу «Бренд», а G означает «Группа».Они нужны мне отдельно в базе данных.Если это невозможно сделать только с помощью SQL, есть ли способ получить результат, который я хочу использовать с помощью PHP?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

php explode сделает всю работу за вас, вот как

$data = file_get_contents('data.txt')
// make an array for each line
$lines = explode('/n', $data)
foreach ($lines as $line) {
// Make array  for each part of the line
$eline = explode('|', $line) ;
// $eline[0] is first part that have b or g or p
if ($eline[0] == 'B') {
// the sql code for brands
}
}

, если вы хотите, я могу заполнить полный код для вас, просто скажите мне, что запрашивает sql

0 голосов
/ 26 февраля 2019

Было бы проще, если бы файл был разделен по типу.Я бы использовал grep, потому что он уже там и сохраняет запись той же функциональности в php:

grep ^P file.txt > P.txt
grep ^G file.txt > G.txt
grep ^B file.txt > B.txt

LOAD DATA LOCAL INFILE может использоваться для импорта каждого отдельного файла в его собственную таблицу.Убедитесь, что mysql клиент запущен с --local-infile, чтобы позволить ему передать файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...