我想使用 exec() 函数从我的 php 脚本中使用 mysqldump。
我是用 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 服务器的 Windows 本地计算机上工作,我的 mysqldump 是 MariaDB。
为什么同一行代码在 CMD 中有效,但在 php 脚本中却无效?
如何从 exec() 函数获取结果来知道我的错误在哪里?
最佳答案
https://serverfault.com/questions/249853/does-mysqldump-return-a-status
这个答案让我差点哭了。
我终于咕咕咕了!
我在调用中添加了 2>c:/dump/database.err
,最后它确实输出了错误。
"mysqldump' is not recognized as an internal or external command,operable program or batch file."
我更正了完整路径名并完成了。天哪,我讨厌编程:(
关于php - 当我使用 exec() 时如何从 mysqldump 获取返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050243/