0

我试图确定为什么这两个 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';
4

1 回答 1

0

通过这样做解决了这个问题:

$mysqli->query("LOAD DATA INFILE '" . $file . "' INTO TABLE  myTable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'");
于 2013-02-23T00:02:03.157 回答