PDO备份数据库

61 阅读1分钟

$pdo = new \PDO('mysql:host=127.0.0.1;dbname=', 'username', 'password');
$tables = $pdo->query('SHOW TABLE STATUS')->fetchAll(\PDO::FETCH_ASSOC);

foreach ($tables as $table) {
    $tableName=$table['Name'];
    $ts = $pdo->query( "show create table $tableName")->fetchAll(\PDO::FETCH_ASSOC);
    foreach ($ts as $t){
        $mysql.=$t['Create Table'].";\r\n";
        echo $t;
    }

    $data = $pdo->query("SELECT * FROM $tableName")->fetchAll(\PDO::FETCH_ASSOC);

 
    foreach ($data as $row) {
        $keys = array_keys($row);
        $keys = array_map('addslashes', $keys);
        $keys = join(',', $keys);
        $keys = "" . $keys . "";
        $vals = array_values($row);
        $vals = array_map('addslashes', $vals);
        $vals = join("','", $vals);
        $vals = "'" . $vals . "'";
        $mysql .= "insert into $tableName($keys) values($vals);\r\n";
    }
}
file_put_contents(dir . "/1.sql", $mysql);