csv Load Data Infile OPTIONALY ENCLOSED BY未按预期工作

wvyml7n5  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(97)

许多相关的门票和啧啧网站,但不幸的是没有解决方案已为我工作到目前为止,几个小时坚持在这一点上。
我有很多csv文件需要插入到mysql数据库中,使用“加载文件”可以非常快速和轻松地完成。
然而,它在一个部分绊倒了:csv行示例:
绝对,格伦,阿纳基,“酷Synd,超级酷”
我使用的代码是:

$q = "load data infile '$file' into table $table
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\n';";
    mysql_query($q, $db);

字符串
我希望有4个字段,但我最终有5个,它将引号内的逗号视为分隔符。我以为选择性封闭的重点是抓住这些案件?
我试过切换字段的顺序终止和选择封闭的命令。我试着把它封闭起来。尝试不转义“,也/“/”,尝试使用2个单引号而不是双引号;但我还是不能让它理解我想要“酷的Synd,超级酷”作为一个字段。
有人知道我哪里做错了吗?
下面是我的表结构:
x1c 0d1x的数据
我只是把我所有的数据扔在这里,然后我处理它,并将字段移动到相关的表中,使其成为正确的格式。出现问题的列是“所有者”。我在这里将其更改为文本类型,因为这是其他人的解决方案,但无论是text,char,varchar等,它的工作方式都是一样的。
(工作在Ubuntu服务器14.4,Apache/2.4.7,PHP 5.5.9)

mbyulnm0

mbyulnm01#

我遇到了这个问题,并在这里解决了它:
https://arstechnica.com/civis/viewtopic.php?t=366658
把顺序倒过来。

$q = "load data infile '$file' into table $table
    FIELDS OPTIONALLY ENCLOSED BY '"'
    TERMINATED BY ','
    LINES TERMINATED BY '\n';";
    mysql_query($q, $db);

字符串
双引号前也不需要反斜杠

相关问题