gpt4 book ai didi

php - MySQL:csv 中的 INTO OUTFILE 生成无效的 csv 格式

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:13 28 4
gpt4 key购买 nike

我正在尝试将 sql 查询结果导出到 csv 文件,它可以工作,但输出的 csv 数据看起来不太好而且很奇怪。

MySQL 表下载链接: https://www.dropbox.com/s/vtr215bcxqo3wsy/data.sql?dl=0

由 sql 查询生成的 CSV:

原始生成的 CSV 文件的下载链接:https://www.dropbox.com/s/fnjf7ycmh08hd22/data.csv?dl=0

我正在使用以下代码:

$query = <<<EOL
SELECT * FROM data ORDER BY FN ASC limit 3
INTO OUTFILE 'folder/data.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
EOL;

$result = mysql_query($query);

为什么 csv 格式看起来如此奇怪和 Not Acceptable ?如果我对其他表尝试相同的代码,那么一切都像魅力一样,那有什么问题吗?

最佳答案

请参阅下面的最终答案

看起来你的行以 \\n 终止,并且它在随机位置抛出额外的斜杠。

改为尝试使用双斜杠后接 n (\\n),看看会发生什么:

$query = <<<EOL
SELECT * FROM data ORDER BY FN ASC limit 3
INTO OUTFILE 'folder/data.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\\n'
EOL;

$result = mysql_query($query);

编辑

最终答案

另一个观察:我注意到在您的 PROP_TYPE 字段中,有\r\n 字符。有没有什么方法可以使用 REPLACE() 函数在查询中过滤掉它们?

我知道您正在寻找基于 SQL 的解决方案,由于数据量巨大,这是一个难题。希望这能引导您找到正确的解决方案。

正如您提到的,使用更新数据集 PROP_TYPE = replace(PROP_TYPE, '"','') 解决了这个问题。

关于php - MySQL:csv 中的 INTO OUTFILE 生成无效的 csv 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748754/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com