<?php
$dsn = 'mysql:dbname=『データベース名』;host=『ホスト名』';
$user = '『データベースのユーザー名』';
$password = '『データベースのパスワード』';
try {
// データベース定義を作成
// ローカルサーバーで行う場合
//$pdo = new PDO($dsn, $user);
// サーバー接続で行う場合
$pdo = new PDO($dsn, $user, $password);
// 文字コードの変換
$pdo->query('SET NAMES UTF8');
// メインテーブルの情報を取得
$sql = "
SELECT
*
FROM
『値を取得するテーブル名_tbl』
";
$result = $pdo->query($sql);
$data = array();
$code_set_count_list = array();
// 1行ことにデータ取得
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$data[$row['『ベースとするカラム名(id/post_idなど)』']] = $row;
}
// 以下、CSVファイルの生成
// ヘッダ行(1行目に書き込む項目を定義)
$columns = array(
'post_id',
'post_type',
'post_status',
'post_name',
'post_title',
'post_content',
);
// ファイルポインタを取得
$fp = fopen('./『エクスポートするファイル名』.csv', 'w+');
// CSVにヘッダ行を書き込む
fputcsv($fp, $columns);
// 各行のデータをCSVに書き込む
foreach ($data as $key => $val) {
// ヘッダ行と同じだけの配列を用意する
$row = array();
$row[] = ''; // 空要素の場合
$row[] = 'hogehoge'; // 固定要素の場合
$row[] = 'publish'; //固定要素の場合
$row[] = ''; //固定要素の場合
$row[] = $val['『取得したい値のカラム名』'];
$row[] = $val['『取得したい値のカラム名』'];
$row[] = $val['『取得したい値のカラム名』'];
// 文字コードを変換
mb_convert_variables('SJIS-win', 'UTF-8', $row);
// CSVに書き込む
fputcsv($fp, $row);
}
} catch (\Exception $ex) {
echo $ex->getMessage() . PHP_EOL;
}