2013-05-28 61 views
0

當我從cmd框運行下面的命令,它工作正常;創建裏面有我的數據庫中的數據文件:mysqldump php命令easyphp

"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root -p databasename > D:\path\dumpedfile.sql 

但後來當我跑這一個從PHP腳本,它使文件,但其空:

shell_exec('"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root -p databasename > D:\path\dumpedfile.sql'); 

(注:我有沒有密碼設置)

我做錯了什麼?

請幫助 感謝

+0

如果你嘗試絕對路徑? – Hackerman

+0

@robert,剛剛嘗試完整路徑C:\ ....等 - 仍然沒有快樂 – Lan

+0

當您通過cmd框運行命令....提示要求密碼,或不? – Hackerman

回答

0

如果沒有您的用戶帳戶中有任何密碼,你應該嘗試沒有-p說法。

shell_exec('"\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump" -u root databasename > dumpedfile.sql'); 
+0

剛試過;仍然沒有快樂 – Lan

+0

@蘭,你是否得到任何錯誤或文件仍然是空的? –

+0

沒有錯誤,只是空的 – Lan

0

嘗試是這樣的:

<?php 
$User = "root"; 
$Password = "mypass"; 
$DatabaseName = "bcms6" 
$File = "mydump.sql"; 
shell_exec("fullpath\mysqldump --allow-keywords --opt -u $User -p $Password $DatabaseName > $File"); 
//Or this way 
shell_exec('"C:\Program Files (x86)\EasyPHP-5.3.9\mysql\bin\mysqldump.exe" -u root -p database > database_dump.sql'); //second way with full path. 
?> 

你可以嘗試過這種方式:

$command = 'mysqldump -u root -ppassword database > /path/database.sql'; 
system($command, $output); 

if($output != 0) { 
    echo 'Error during backup'; 
else { 
echo 'Database dumped'; 

} 

EDITED .. 密碼必須被硬編碼。

+0

謝謝。只是嘗試過,但仍然,它使文件,但它是空的 – Lan

+0

對不起,剛剛看到編輯 - 你是什麼意思? - 必須有密碼? – Lan

+0

是的,嘗試使用密碼...或者嘗試用其他方法....我要再次編輯 – Hackerman