2017-10-28 8 views
-2

から私は、ローカルサーバー上のバックアップDB PHP

$dump_path = "backups"; 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$command=$dump_path.'mysqldump -h '.$host.' -u '.$user.' dental > dental_b.sql'; 
if (system($command)) { 
    echo "YES" ; 
} else { 
    echo "Error" ; 
} 

を、このスクリプトをテストしかし、なぜ、そのスクリプトが実行されず、DBからのすべてのデータが真であるものの、エラーを示しています。

+0

実行するコマンドは何ですか?今は 'backupsmysqldump -h localhost -u root dental> dental_b.sql'です。あなたは '$ dump_path'がコマンドのプレフィックスであるべきですか? –

+0

私は知っていますが、この問題の解決策が必要でした –

答えて

1

localhostでmysqldumpを使用している場合は、ホストオプションは必要ありません。あなたのコマンドを連結している方法は、私にぶち壊されて見えます。私のために何ができるかを教えてください。私はこれを常に使用します:

<?php 

$user = "root"; 
$pass = ""; 
$database = "dental"; 

// File name 
$file_name = 'dental_b.' . date('mdY.Hia') . '.sql.gz'; 

// Storage directory 
$storage_dir = __DIR__ . '/backups'; 
if(! is_dir($storage_dir)) 
    mkdir($storage_dir, 0777, TRUE); 

// Absolute path to new file 
$absolute_path = $storage_dir . '/' . $file_name; 

// Create the backup file 
exec('mysqldump -u ' . $user . 
    ' -p' . $pass . 
    ' ' . $database . 
    ' | gzip > ' . $absolute_path); 

はい、私はファイルをgzipしています。あなたは-p使用しないでください、パスワードを使用していない場合、私は

など、あなたがこれを電子メールで送信するストレージのための良い選択肢であり、見つけることだと思うEDIT ---

。その場合はコマンドを変更したいでしょう。

+0

詳細な回答には非常に感謝しています –

関連する問題