MySQL和fputcsv PHP字段分隔符不起作用

时间:2014-10-24 19:01:03

标签: php mysql fputcsv

这是我的代码:

<?php
error_reporting(E_ALL ^ E_NOTICE);
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('field1', 'field2'),';','"');
mysql_connect('localhost', 'usr', 'psswd');
mysql_select_db('db');
$rows = mysql_query('
SELECT
field1,
field2
FROM table
');
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
mysqli_close($con);
?>

结果就是“;”分隔符仅用于csv文件的标头,而不是每行。 罐。

1 个答案:

答案 0 :(得分:3)

当您遍历行时,您没有设置“ dialect ”(分隔符和机箱)。那是:';','"'部分。只需使用:

while ($row = mysql_fetch_assoc($rows)){
    fputcsv($output, $row,';','"');
}

同样对于这个特定用例mysql_fetch_row()可能更合适(你避免使用基于字符串的索引,只使用数字索引)。

旁注:mysql_ functions family is obsolete,如果可以尝试replace it with mysqli_ or PDO