将查询保存为CSV文件,但无法获取以CSV格式写入的表头字段名称

时间:2012-03-06 13:03:31

标签: php mysql

我已成功从查询创建CSV文件并将文件保存在服务器上,但根据查询列名称,我无法让csv包含标题字段。我正在从mysql_field_name创建一个头数组,但无法让它将头写入csv,它只会写表数据。任何想法/例子都非常感激。

//Create a CSV for 
$result = mysql_query("SELECT * FROM `car_details`"); 
if (!$result) die('Couldn\'t fetch records'); 
$num_fields = mysql_num_fields($result); 
$headers = array(); 
for ($i = 0; $i < $num_fields; $i++) 
{     
       $headers[] = mysql_field_name($result , $i); 
} 
$csv_filename = "Policy-" .$datetime.".csv";
$fp = fopen($csv_filename, 'w+');


if ($fp && $result) 
{     
       while ($row = mysql_fetch_row($result)) 
       {
          fputcsv($fp, array_values($row)); 
       } 
}

2 个答案:

答案 0 :(得分:1)

看起来像:

...
if ($fp && $result) 
{
    fputcsv($fp, $headers);
    while ($row = mysql_fetch_row($result)) 
    {
        fputcsv($fp, array_values($row)); 
    }
}

答案 1 :(得分:0)

尝试将$ header作为第一行写入文件。