Car*_*son 9 php mysql line-breaks
我正在将.csv文件导入MySQL,一切正常,除了文件中的换行符.
我的.csv行之一如下所示:
42,E-A-R™ Classic™ Earplugs,ear,images/ear/classic.jpg,5%,"Proven size, shape, and foam
3M's most popular earplug
Corded and uncorded in a variety of individual packs
NRR 29 dB / CSA Class AL",312-1201,,"E-A-R™ Classic™ Uncorded Earplugs, in Poly Bag",310-1001,,E-A-R™ Classic™ Uncorded Earplugs in Pillow Pack,311-1101,,"E-A-R™ Classic™ Corded Earplugs, in Poly Bag"
Run Code Online (Sandbox Code Playgroud)
第六个字段应该在调用时进入一个新行,但它不会.导入.csv时,我选择以\r \n 终止的行.我试过\n和auto但没有运气.
奇怪的是,该字段在数据库中看起来正确,具有所有适当的中断.如果我手动进入PHPmyadmin插入换行符,它会正确打印.每个字段也设置为UTF-8.
有什么想法吗?谢谢.
编辑:这是MySQL语句
LOAD DATA LOCAL INFILE '/tmp/php89FC0F' REPLACE INTO TABLE `ohes_flyer_products`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r'
Run Code Online (Sandbox Code Playgroud)
Kru*_*nal 12
LOAD DATA LOCAL INFILE '/tmp/php89FC0F' REPLACE INTO TABLE `ohes_flyer_products`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
Run Code Online (Sandbox Code Playgroud)
也许您可以使用fgetcsv将每个 csv 行解析为数组,然后将该数组转储到数据库中?
类似的东西
$fd = fopen($csvfile, "r");
while ($line = fgetcsv($fd))
{
$sql = sprintf("INSERT INTO tablename (...) VALUES ('%s', ...)", $line[0], ...);
$res = mysql_query($sql);
}
Run Code Online (Sandbox Code Playgroud)
注意 1:代码尚未准备好用于生产,请检查 SQL 注入!
注意 2:请使用准备好的语句,因为使用它们会大大加快速度(或创建一个多行插入语句)。
注3:将所有内容包装在一个事务中。
| 归档时间: |
|
| 查看次数: |
16066 次 |
| 最近记录: |