PDO PHPでmysqldumpを自動化することは可能ですか?

私は2つのボタンを持つ単純なページを作成しようとしています、それらのうちの1つが押されるとデータベースがダンプされ(mysqldump)、もう1つが復元される(インポートされる)のです。

私は1つの開発環境でそれをやろうと思います、私は中央サーバーを持っていません、そして日々の状況に応じて私は自分自身がいくつかの異なるPCから働いているのに気づきました。 SpiderOakを使って、私はmysqldumpをPC間で同じようにすることを試みています。

index.html

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>Herramienta Back Up/Restore DataBase ;)</title>
    <link rel="stylesheet" type="text/css" href="Babifu.css">
</head>
<body>
    <center>
        <img class="thumb" src="http://lorempixel.com/g/450/370/nightlife/"/><br /><br />
        <form id="me1" action="backup.php" method="post"><br /><br /><br />
            <input type="submit" value="Backup database" />
        </form>
        <form id="me2" action="restore.php" method="post"><br /><br /><br /><br /><br /><br />
            <input type="submit" value="Importar" />
        </form>
        <div class="clear"></div>
    </center>
</body>
</html>

backup.php

<?php
include('conection.php');
try {
    $qls = "mysqldump --default-character-set=UTF8 --single-transaction -u root -p[Paswordofthedatabase] u739462586_dtren > restoresync.sql";
    $stmt = $con->prepare($qls);
    $rslt = $stmt->execute();
    echo "Base de Datos Salvadas Correctamente";
} catch(PDOException $e) {
    echo $e->getMessage;
}
?>

restore.php

<?php
include('conection.php');
try {
    $qls = "mysql -u root -p[Paswordofthedatabase] < restoresync.sql";
    $stmt = $con->prepare($qls);
    $rslt = $stmt->execute();
    echo"Base de Datos Restaurados/Importados Correctamente";
} catch(PDOException $e) {
    echo $e->getMessage;
}
?>

問題は、動作していないこと、コンソールにエラーメッセージが表示されないこと、そしてそれがPHPを実行することです。

それはクエリを通しても可能ですか?どうすればいいの?このコードの何が問題になっていますか

バックアップが特定のフォルダに作成されることを確認する方法はありますか?任意の提案、コメント、明確化の要求、質問や回答は非常に高く評価されます。

ベストアンサー
これらはMySQLのクエリではなく、ターミナルを通じて実行するコマンドです。
これを使用してコマンドを実行し、完全な出力を取得します。

$dump_output = shell_exec("mysqldump --opt --default-character-set=UTF8 --single-transaction --protocol=TCP -u --user=root --password=dbpassword --host=localhost DB_NAME > restoresync.sql");
echo $dump_output; /* Your output of the dump command */

$restore_output = shell_exec("mysql -u root -p[Paswordofthedatabase] < restoresync.sql");
echo $restore_output; /* Your output of the restore command */

shell_exec()の代わりに、halferのようにexec()を使用することもできます。

両者の違いは、shell_exec()とexec()で完全な出力が得られることです。出力の最後の行だけが得られます。

転載記事の出典を記入してください: PDO PHPでmysqldumpを自動化することは可能ですか? - コードログ