我有一個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