来自mysql表的CSV逗号分隔文件

时间:2017-02-07 07:40:40

标签: php mysql

我写了一个脚本来将mysql表导出到csv文件。 除了将它作为制表符分隔文件导出之外,它的效果很好。 我需要它以逗号分隔。 我尝试过INTO ONFILE,但无法使其正常工作。 所以这就是我现在所拥有的:

$fh = fopen(__DIR__ . '/Stock.csv', 'w');

$result = mysql_query("SELECT * FROM table ORDER BY SKU");   
while ($row = mysql_fetch_array($result)) {          
    $num = mysql_num_fields($result) ;    
    $last = $num - 1;
    for($i = 0; $i < $num; $i++) {            
        fwrite($fh, $row[$i]);                       
        if ($i != $last) {
            fwrite($fh, "\t");
        }
    }                                                                 
    fwrite($fh, "\n");
}
fclose($fh);

如何修改它以使其成为逗号分隔符?

3 个答案:

答案 0 :(得分:1)

你可以使用简单的MySQL语句 - SELECT + INTO OUTFILE,它会写一些类似CSV的文件。

SELECT *
INTO OUTFILE 'Stock.csv'
FIELDS TERMINATED BY ','
FROM table
ORDER BY SKU;

答案 1 :(得分:0)

要将数据从数据库输出到CSV,您应该使用:
http://php.net/manual/en/function.fputcsv.php
要用逗号分隔数据,可以使用implode方法:
Wrap CSV values generated by PHP fputcsv() with " "
请仔细阅读这两个链接。我相信你会得到你需要的东西。

答案 2 :(得分:0)

您可以使用此功能:

http://www.php.net/manual/de/function.fputcsv.php

使用数组将行插入csv文件并将分隔符设置为“,”。

$file = fopen("data.csv","w");
$a = array("value1","value2","value3");
fputcsv($file,$a,",");