我有一个问题,我有一个“文本”字段与一堆“故事”粘贴从单词等这样的事情,包括像换行符和制表符。我想导出为CSV,保持这些或能够让他们回来。MySQL的换行符会导出为CSV格式吗?
但我不知道如何逃脱它们,所以它的作品?当我导出CSV时,我会在多行/列上得到一串单个句子的CSV。
我试图用其他东西取代新闻线,但我一直搞乱了。有没有简单的方法来做到这一点,而不会破坏数据?
我有一个问题,我有一个“文本”字段与一堆“故事”粘贴从单词等这样的事情,包括像换行符和制表符。我想导出为CSV,保持这些或能够让他们回来。MySQL的换行符会导出为CSV格式吗?
但我不知道如何逃脱它们,所以它的作品?当我导出CSV时,我会在多行/列上得到一串单个句子的CSV。
我试图用其他东西取代新闻线,但我一直搞乱了。有没有简单的方法来做到这一点,而不会破坏数据?
CSV不是任意的文本格式良好的,但你可以尝试
SELECT ... INTO OUTFILE '/tmp/text.csv'
FIELDS ESCAPED BY '""' TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM yourtable
引发'字段分隔符参数不是预期的错误。必须是 'ESCAPED BY'“'' – Blaubaer 2016-07-26 10:07:13
尝试这样:
$line.=preg_replace("/\n\t/", ";", preg_replace("/,/", ";", $f['field5'])).',';
或
$line.=preg_replace("/\n/", ";", preg_replace("/,/", ";", $f['field5'])).',';
和你到底必须首先显示$line
包括标题。
$f['field5']
- 来自db的数据。
您可以尝试使用SELECT进行搜索并替换某种东西,在其中搜索\ n的换行符并将其替换为“'”。除非你做了更新,否则SELECT实际上不会替换表中的任何东西。见下面的查询示例。
(SELECT 'columnA', 'columnB', 'columnC')
UNION
(SELECT `columnA`, REPLACE(`columnB`, '\n', ''), `columnC`
FROM `yourtable`
INTO OUTFILE '/tmp/text.csv'
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"'
LINES TERMINATED BY '\n');
是的,这就是CSV的工作原理。你可以很容易地将换行符转义为'
'元素。 – ppeterka 2013-03-04 16:24:56
是否使用PHP的fgetcsv()函数?你在使用MySQL的LOAD DATA命令吗? – 2013-03-04 16:25:02
我正在使用MYSQL导出CSV功能。 PHP FGETCSV会工作吗? – Steven 2013-03-04 16:26:06