ゆう's Blog
PHPでMySQLデータをエクスポートする

<?php
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';

// データベース接続
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// テーブル名を取得
$tables = $conn->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);

$backupFile = 'backup_' . date('Ymd_His') . '.sql';
$handle = fopen($backupFile, 'w');

foreach ($tables as $table) {
    // テーブルの作成文を取得
    $createTableStmt = $conn->query("SHOW CREATE TABLE $table")->fetch(PDO::FETCH_ASSOC);
    fwrite($handle, $createTableStmt['Create Table'] . ";\n\n");

    // テーブルのデータを取得
    $rows = $conn->query("SELECT * FROM $table")->fetchAll(PDO::FETCH_ASSOC);
    foreach ($rows as $row) {
        $values = array_map([$conn, 'quote'], array_values($row));
        fwrite($handle, "INSERT INTO $table VALUES (" . implode(', ', $values) . ");\n");
    }
    fwrite($handle, "\n\n");
}

fclose($handle);
echo "Backup completed: $backupFile";
?>