如何将.txt文件导入不同表中的mysql数据库

时间:2019-02-25 23:38:12

标签: php mysql insert

我有兴趣将此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 :(得分:0)

php爆炸将为您完成工作,这是方法

$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查询

答案 1 :(得分:-1)

如果按类型分隔文件,这将是最简单的。我会使用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启动,以允许其传递文件。