我看到很多帖子的有關正確的方法來導出爲CSV,大多數的開發者推薦使用fputcsv()
PHP - 出口MySQL查詢到CSV的變速
我將如何轉換下面的腳本使用fputcsv
? 你會看到我也在導出標題行,它反映了表列的名稱,我想保留它。
<?php
$sql = "SELECT * FROM `tbl_customers`";
$result = mysql_query($sql, $dbdata_conn) or die(mysql_error());
$header = $csv_output = '';
$fields = mysql_num_fields($result);
for ($i = 0; $i < $fields; $i++) {
$header .= mysql_field_name($result, $i) . ",";
}
$header .= "\n";
while ($rowr = mysql_fetch_row($result)) {
for ($j=0; $j<$i; $j++) {
$csv_output .= $rowr[$j].", ";
}
$csv_output .= "\n";
}
$csv_output = $header.$csv_output;
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=test.csv");
header("Pragma: no-cache");
header("Expires: 0");
print "$csv_output";
exit;
?>
我知道,mysql_query
被棄用,因此,這是實踐的緣故。
作爲一個附註,我不熟悉fputcsv
,但我在閱讀它,它對於爲csv輸出格式化數據非常有用,併爲所有轉義等節省了我們的時間。 (我也很給改進什麼上面非常開放)
您不想使用[選擇到了文件?](http://dev.mysql.com/doc/refman/5.0/en/select-into.html) –
您可以使用[This example](http://php.net/manual/en/function。 fputcsv.php)來做我認爲你嘗試做的事情 –