データベース(Mysql)に登録しているデータをCSV形式でダウンロード
管理画面からデータベース(Mysql)に登録している情報をCSV形式にしてダウンロードしたいという、要望があった際に実装した方法をメモ PHP $host = 'localhost'; // サーバー名 $sqlname = 'sample'; //データベース名 $username = 'xxxxx'; //データベースユーザー名 $pssword = 'xxxxx'; // パスワード $options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); $dbh = new PDO('mysql:host='.$host.';dbname='.$sqlname.'', $username, $pssword, $options); // CSVファイル名の設定 $nowtime = date('Ymd', time()); $csv_file = 'CSV_'.$nowtime.'.csv'; // CSVデータの初期化 $csv_data = ''; // CSVデータの作成 $sql = $dbh->query('SELECT * FROM tbl_sample'); $csv_data .= mb_convert_encoding('項目名1, 項目名2, 項目名3, 項目名4, 項目名5', 'SJIS', 'UTF-8').''; while($row = $sql->fetch(PDO::FETCH_ASSOC)){ $csv_data .= mb_convert_encoding($row['date01'], 'SJIS', 'UTF-8').',' .mb_convert_encoding($row['date02'], 'SJIS', 'UTF-8').',' .mb_convert_encoding($row['date03'], 'SJIS', 'UTF-8').',' .mb_convert_encoding($row['date04'], 'SJIS', 'UTF-8').',' .mb_convert_encoding($row['date05'], 'SJIS', 'UTF-8').''; } // MIMEタイプの設定 header('Content-Type: application/octet-stream'); // ファイル名の表示 header('Content-Disposition: attachment; filename=$csv_file'); // データの出力 echo($csv_data);