【问题标题】:Save a query as CSV file, but can't get table header field names to write in CSV将查询另存为 CSV 文件,但无法获取要写入 CSV 的表头字段名称
【发布时间】:2012-03-23 23:08:13
【问题描述】:

我成功地从查询创建了一个 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)); 
       } 
}

【问题讨论】:

  • 好吧,你没有写 $headers 数组(即未使用的变量)。

标签: php mysql


【解决方案1】:

看起来像:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 当然——我只需要 fputcsv($fp, array_values($headers));在写入数据的while循环之前。有时只见树木不见木头!感谢您的指导,不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2013-08-21
    • 2019-10-05
    • 2018-10-11
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多