2016-08-20 74 views
0

请帮帮我,我被困在一个问题寻找解决时间:((php - 如何使用exec()从mysqldump返回?

我想用exec()函数来使用mysqldump从我的PHP脚本

我这样做在PHP

$com = "mysqldump --user=username --password=mypassword mydatabasename >c:\dump\test.sql"; 
$exec($com,$result); var_dump($result); 

,它总是返回在指定的位置空TEST.SQL文件,$result始终是一个空数组。

的事情是,当我写在CMD它完全相同的行作品!我试过使用shell_exec(),结果也是空字符串!我也尝试添加--host = localhost,但没有任何反应。

我的窗户本地机器上工作与XAMPP服务器,我的mysqldump是MARIA DB

1 - 为什么同样的线路工作在CMD,但不能从PHP脚本?

2-如何从exec()函数获得结果以知道我的错误在哪里?

非常感谢你对我的帮助:(

+0

用户\文件权限问题probaby – 2016-08-20 03:45:30

+0

@Dagon你的意思是mysqldump没有权限写在指定的位置? –

+0

............是的。 – 2016-08-20 03:53:36

回答

1

https://serverfault.com/questions/249853/does-mysqldump-return-a-status

这个答案让我差点哭了。 我终于goooooooot itttttt! 我加2>c:/dump/database.err的号召,并boooooooooooooooooom它没有输出错误finally

“mysqldump”不被识别为内部或外部命令,可操作程序或批处理文件。“

我更正了完整的路径名并完成了它。哦,我讨厌编程:(