我有兴趣将此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获得我想要的结果?
答案 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
启动,以允许其传递文件。