我尝试备份我的数据库。我有以下代码:
<?php
$command = 'mysqldump --user=root --host=localhost opencart_status > backup.sql';
$result = passthru($command);
if(!$result){
echo "Error!";
}
else{
echo "OK";
}
?>
我没有用数据库连接到服务器的密码。我需要备份的数据库名为opencart_status
。
输出basckup.sql,但是B大小为0并且为空。我在屏幕上看到的输出是错误的!我还尝试了exec()
函数。但结果相同。
感谢您的建议。
答案 0 :(得分:0)
问题可能出在端口或您使用的命令中。请尝试以下代码:
<?php
$command = 'mysqldump --host=localhost:3306 --user=root opencart_status > backup.sql';
system($command);
?>
答案 1 :(得分:0)
首先,如果您查找passthru
文档,您应该看到passthru
没有返回有关执行状态的任何值。如果需要检查返回值,则应在文档中添加第二个参数,该参数定义为$return_var
:
http://php.net/manual/en/function.passthru.php
最有可能你应该从检查该值而不是函数返回值开始。
之后我建议您尝试从命令行运行mysqldump
命令。您应该能够在控制台中调试mysqldump
问题,然后将其移动到php执行。