php - 当我使用 exec() 时如何从 mysqldump 获取返回?

标签 php mysql

我想使用 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。

  1. 为什么同一行代码在 CMD 中有效,但在 php 脚本中却无效?

  2. 如何从 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/

相关文章:

php - Laravel 中的 Ajax 请求返回一个空对象

php - 如何自定义wordpress函数: the tags?

php - 在数据表插件上的 mysql WHERE 子句上使用 GET 方法不起作用

php - 订阅、单次购买产品和可变服务的数据模型

php - 使用 PHP 和验证码减少垃圾邮件的最佳实践是什么?

php算法将一组数据分成不超过四个的组

javascript - PHP json_encode 输出带引号的数字

php - MySQL:在具有相同列的表上进行左连接

php - 使用 PDO 创建 MySQL 表时出错

mysql - 复合键或新的唯一键