我正在尝试执行 mysqldump 以使用一个小的 PHP 脚本导出所有数据库,但是每次执行代码时都会创建一个空文件。
<?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 的建议起到了作用:
passthru('C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump.exe -uroot -p123456 --all-databases --single-transaction > C:\\tmp' . $filename);