我试图确定为什么这两个 LOAD DATA INFILE 会产生不同的结果。下面的两个查询都会导入数据。
在第一个带有 exec 的查询中,引号不会从表字段中删除。第二个查询按预期删除引号。我已经尝试了 exec 查询的所有变体 - 同样的问题......例如,我试过:
'\"' - (as is now)
"' . " . '"
'"' - (this of course won't work because it needs escaping \ )
'" . " . "' - (this also needs escaping)
\"\"
还有很多其他的变化。
示例输出(在表字段中):
查询 1:“乔·斯莫”
查询 2:乔·斯莫
我看错问题了吗?我也尝试过多次重写查询,但确定我的查询写得正确。
我正在针对完全相同的数据运行这些查询。他们都加载数据,但第一个查询未能从字符串中删除 " (引号)。
查询 1
exec(mysql -u root -e \"USE mydb; LOAD DATA INFILE '" . $file . "' INTO TABLE myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\n'\"; ");
和
查询 2
LOAD DATA INFILE 'filepath' INTO TABLE myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';