我有一个PHP脚本,通过远程服务器的MySQL连接细节,我希望它执行mysqldump
命令。要做到这一点,我使用PHP exec()
功能:mysqldump通过PHP
<?php
exec("/usr/bin/mysqldump -u mysql-user -h 123.145.167.189 -pmysql-pass database_name > /path-to-export/file.sql", $output);
?>
当正确的登录信息传递给它,它会工作精绝。 但是,如果按预期执行,并且未找到原因,我在检查时遇到问题。 $output
数组返回为空,而如果我直接在命令行上运行该命令,则会打印出一条消息,告诉我登录失败。我想捕获这些错误信息并显示它们。任何想法如何做到这一点?
这里是链接:http://php.net/manual/en/function.exec.php,我认为最好这样说:“按照Unix惯例,当出现错误时,进程返回0以外的任何值” :) – 2012-07-26 23:17:12
有没有什么办法可以知道$ return_var的每个值是什么意思,所以我可以将它翻译成一个有意义的错误信息?会猜测每个命令都不一样。 – 2012-07-26 23:35:46
如果$ return_var不等于零,$输出必须有错误代码,因为程序将错误写入stderr,而stderr与您重定向到文件的stdout不同。 'if($ return_var){die($ output); }' – 2012-07-27 02:18:08