当我将表导出到csv时,fputcsv将双引号添加到带空格的值,例如:
day|night|summer|winter
something|123|something|"Bauer Jack"
foo|bla|5|dooper
我发现我无法避免这种情况。
当我尝试使用LOAD DATA INFILE导入此csv时,问题就出现了,它不会导入包含双引号的行。因此,使用“Bauer Jack”示例的行不会导入到mysql中。
$query = <<<eof
LOAD DATA LOCAL INFILE '$filename' INTO TABLE `table_name`
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
eof;
你能建议一个解决方案吗?为什么没有导入带双引号的行?
当我从csv文件中删除双引号时,一切正常。
首先尝试使用OPTIONALLY ENCLOSED BY子句。
$query = <<<eof
LOAD DATA LOCAL INFILE '$filename' INTO TABLE `table_name`
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '|'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
eof;