我正在使用此命令备份我的完整mysql数据库..
$backupFile = $dbname . date("Y-m-d-H-i-s") . '.sql';
$command = "mysqldump -h$hostname -u$username -p$password $dbname > $backupFile";
system($command);
我收到空白文件。
我在Windows上使用XAMMP。
我已经使用了exec()
但也获得了空白文件。
但是在shell上它已经成功完成了。
这段代码有什么不对。
答案 0 :(得分:1)
你能做的最好的事情就是检查出了什么问题。你甚至可能想在PHP之外检查一下,看看你在做什么。所以回显你的$命令,看看它,看看它是否正确。然后在命令行上使用它,看看你是否可以使它工作。
可能的关注点:
要测试当前命令,您可能希望这样做:
- 使用echo替换system
命令:echo $command;
- 运行脚本并复制您在那里看到的命令。
- 打开终端。 (开始 - > RUN-> “中CMD”)
- 转到脚本运行的目录。
- 粘贴/输入命令。
- 检查你的结果。
我不知道当你没有密码时会发生什么,但仍然提供-p选项。无论如何,它可能会尝试并要求输入密码,因为您已经表明要输入密码,但尚未提供密码。我肯定不知道,这就是为什么你可能要检查它。 (@ wimvds在评论中确认:如果你提供-p而没有密码,你会得到一个“密码:”对话框。)
在命令行中,您可以检查需要键入的命令以使mysqldump工作。如果没关系,那么请确保您的脚本实际发出该命令。然后再用脚本测试。