小さな PHP スクリプトですべてのデータベースをエクスポートするために mysqldump を実行しようとしていますが、コードが実行されるたびに空のファイルが作成されてしまいます。
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$filename='database_backup_'.date('G_a_m_d_y').'.sql';
$result=exec('mysqldump -p123456 -uroot --all-databases --single-transaction > C:\\tmp' . $filename,$output);
if($output==''){
echo("Success");
}
else {
var_dump($output);
}
?>
しようとしましprint_r
た$output
が、ダンプが失敗した場合でも明らかにこれは空です。正常に動作する mysqldump.exe を使用して、同一の mysqldump を手動で実行しました。
パススルーの提案はトリックを行いました:
passthru('C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump.exe -uroot -p123456 --all-databases --single-transaction > C:\\tmp' . $filename);