2010-10-11 88 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