データベース クエリの結果を csv ファイルに変換するスクリプトがあります。csv ファイルの最初の行は、クエリで定義されているフィールド名である必要があります。これが私がこれまでに持っているものです:
$fp = fopen('report.csv', 'w');
$column_names = array();
foreach($dbh->query($base_query, PDO::FETCH_ASSOC) as $row) {
if (empty($column_names)) {
$column_names = array_keys($row);
fputcsv($fp, $column_names);
}
// additional processing omitted ...
fputcsv($fp, $row);
}
fclose($fp);
csv の最初の行に列名を入力するより良い方法はありますか (if 条件を廃止します)? おそらくループの外でそれを行いますか?または、データをフェッチする前に PDO に列名を出力させますか? ありがとう。