[請益] 用system和exec執行指令發生問題
因為要做資料庫備份,所以寫了一小段程式碼
不過在執行備份的動作時會發生奇怪的問題
以下是程式碼
<?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
推
04/01 20:22, , 1F
04/01 20:22, 1F
→
04/01 20:48, , 2F
04/01 20:48, 2F
→
04/01 20:49, , 3F
04/01 20:49, 3F
推
04/01 20:49, , 4F
04/01 20:49, 4F
→
04/01 20:50, , 5F
04/01 20:50, 5F
→
04/02 00:56, , 6F
04/02 00:56, 6F
→
04/02 14:27, , 7F
04/02 14:27, 7F
→
04/02 19:29, , 8F
04/02 19:29, 8F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
6
14