看板 PHP 關於我們 聯絡資訊
因為要做資料庫備份,所以寫了一小段程式碼 不過在執行備份的動作時會發生奇怪的問題 以下是程式碼 <?php $MYSQL_SERVER = 'localhost'; // mysql主機名稱 $MYSQL_USER = 'root'; // mysql主機帳號 $MYSQL_PASSWD = 'password'; // mysql主機密碼 $MYSQL_DBNAME ='msnsmdb'; // 使用資料庫 $MYSQL_DBNAME_FILE = date('Ymd_His_'); $MYSQL_DBNAME_FILE.= $MYSQL_DBNAME.'.sql'; //設定備份檔案名稱(日期時間 + 資料 庫名稱) //echo "Creating New Back Up Directory"; //echo "Using Directory : $DIRNAME"; @mkdir ($DIRNAME,0700); //echo "Backing Up $MYSQL_DBNAME Databases on $HOSTNAME "; $COMMAND_DO = "mysqldump -h".$MYSQL_SERVER." -u".$MYSQL_USER." -p".$MYSQL_PASSWD." ".$MYSQL_DBNAME." > ".$MYSQL_DBNAME_FILE;//備份指令 /*因為直些執行指令似乎不行,所以寫到批次檔中執行*/ $batpath = "backup.bat"; $fp = fopen($batpath, "w+") or die("can't open file!"); fwrite($fp,$COMMAND_DO); fclose($fp); system($batpath,$retval); // 執行資料庫備份 //echo "DONE!"; ?> 本來是直接用system或exec執行$COMMAND_DO, 不過一直沒辦法產生結果,所以改成寫到批次檔去執行 寫到批次檔執行時看到了奇怪的東西 執行時的指令變成 C:\AppServ\www\MyData\mysqldump -hlocalhost -uroot -ppassword 1>20080401.sql 綠色的部分本來應該是-ppassword > 20080401.sql 可是卻多了空格和1 如果直接執行backup.bat,也會出現空格和1,但是可以產生備份的檔案 想請問一下有人知道是怎麼回是嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.156.75
appleboy46:1> 標準輸出 2> 錯誤輸出,你說的 1 可加可不加 04/01 20:22
pinkisme:可是他沒有把結果輸出到我的備份檔耶 04/01 20:48
pinkisme:可是直接執行批次檔卻可以,才覺得奇怪@@ 04/01 20:49
appleboy46:mysqldump -u root -p密碼 dbname > 20080401.sql 04/01 20:49
appleboy46:你沒指定 db Name 04/01 20:50
pinkisme:照你說的做了,不過還是不行orz 04/02 00:56
appleboy46:錯誤訊息? po一下錯誤訊息吧,我這樣用都沒問題 04/02 14:27
pinkisme:恩..他沒有顯示錯誤訊息,只有產生檔案,內容空的@@ 04/02 19:29