0

PHP でデータベースの復元スクリプトを作成していますが、機能しません。これはこれまでのコードです

<form action = '' method = 'POST'>
            <h2>Restore</h2>
            <table>
            <tr><td><input type=file name="file"></td></tr>
            <tr><td><input type = 'submit' name = "restore" value="restore"></tr></td>
            </table>
        </form>

        <?php
        $host = 'localhost';
        $user = 'root';
        $pass = ' ';
        $dbname = 'itravel';
        //date_default_timezone_set('Asia/Kuala_Lumpur'); 
        //$currentdate = date('YmdGis');
        $restore_name = $_POST['file'];
        $custompath = $_POST['path'];

        if(isset($_POST['restore']))
        {
                $restore = "c:/xampp/mysql/bin/mysql -h $host -u $user $dbname < $backup_name";
                system($restore);

        }
        ?>

復元ボタンをクリックしても何も起こりません。助けてください

4

1 に答える 1

2
$restore = "c:/xampp/mysql/bin/mysql -h $host -u $user $dbname < $backup_name";
                                                                  ^^^^^^^^^^^

どこにも定義していません$backup_name。そうではない$restore_nameでしょうか?

アップロードも に表示されません$_POST。それらは経由で表示され$_FILESます。

また、アップロードが成功したと想定してはいけません。特にmysqlダンプファイルの場合。アップロードが切り捨てられた可能性がありますが、やみくもにファイルを MySQL にフィードバックすると、部分的または完全に破棄されたデータベースが残る可能性があります。

常にアップロード エラーを確認します。

if ($_FILES['files']['error'] !== UPLOAD_ERR_OK) {
    die("Upload failed with error " . $_FILES['files']['error']);
}

$restore_name = $_FILES['files']['tmp_name']; // temp file PHP stores upload in
于 2013-03-04T14:51:56.277 に答える