<?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";
?>