使用PHP在Windows 7上对所有数据库进行mysqldump
我试图执行mysqldump,用一个小PHP脚本导出所有数据库,但每次执行代码时都会创建一个空文件使用PHP在Windows 7上对所有数据库进行mysqldump,php,windows-7,mysqldump,Php,Windows 7,Mysqldump,我试图执行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 &
<?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);
}
?>
要查看问题所在,请将原始声明更改为以下内容:
$result=exec('mysqldump-p123456-uroot--all databases--single transaction>C:\\tmp'.$filename,$output,$returnVar)代码>
这里的区别是我添加了$returnVar
作为exec()
函数的第三个参数。此参数将返回已执行命令的状态
现在试试print\r($returnVar)
看看它说了些什么。你能暂时试试passthru
而不是exec
@karancan吗,这就成功了,但我还是想知道exec失败的原因。
passthru('C:\wamp\bin\mysql\mysql5.5.24\bin\mysqldump.exe -uroot -p123456 --all-databases --single-transaction > C:\\tmp' . $filename);