2010-10-11 87 views
2

我如下所示的代码,但执行后没有任何反应PHP的mysqldump不起作用

system('mysqldump -u USER -pPASS DB > /tmp/bckp.sql');

什么是错的代码?

苏丹

+0

如果从命令行运行该命令,它是否工作? – 2010-10-11 12:14:34

+0

是的,它的确如此工作 – sultan 2010-10-11 12:16:17

回答

1

有可能是thausands的事情出错:

  • 你收到任何错误讯息?
  • 您是否尝试过echo system(... - 结果如何?
  • 什么是return value
  • 你试过用exec或passthru来代替吗?
  • 你确定你的db-name,用户名和密码拼写正确吗?
  • 如果您自己在终端上激活该命令,会发生什么情况?

一些更多的信息将是真正有用的帮助你。

+0

如果直接从我的控制台执行这个命令它工作得很好,但通过PHP脚本它不会 – sultan 2010-10-11 12:19:15

+0

似乎有执行系统命令的限制,所以现在它的作品 – sultan 2010-10-11 12:22:57

2

您很可能需要指定mysqldump的完整路径,因为它可能不在用户PHP运行时的PATH环境变量中。转到服务器上的命令行并运行

which mysqldump 

它会吐出完整路径。然后在你的system()命令中替换mysqldump,并使用完整路径

+0

这是一个命令在Windows系统上无法识别。还有另外一个人知道绝对路径? – B4NZ41 2011-01-18 15:20:12