使用PHP在Windows 7上的所有数据库的mysqldump

时间:2013-04-14 16:02:35

标签: php windows-7 mysqldump

我正在尝试使用一个小的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的建议做了诀窍:

passthru('C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump.exe -uroot -p123456 --all-databases --single-transaction > C:\\tmp' . $filename);

1 个答案:

答案 0 :(得分:1)

要查看问题所在,请将原始语句更改为以下内容:

$result=exec('mysqldump -p123456 -uroot --all-databases --single-transaction > C:\\tmp' . $filename,$output, $returnVar);

这里的不同之处在于我添加了$returnVar作为exec()函数的第三个参数。此参数将返回已执行命令的状态。

现在尝试print_r($returnVar)并查看其内容。