[SQL ] 程式除錯

看板Database作者 (CD7)時間16年前 (2009/09/07 00:34), 編輯推噓4(404)
留言8則, 3人參與, 最新討論串1/1
這是有關於將讀取的.sql檔,寫入mysql資料庫的程式 但是我是以分號判別一段SQL語法的結尾,但是好像不是很優! 因為也些SQL語法中間部份的value會用到分號! 所以我下面的程式讀到一半都會中斷,請問還有什麼判別的方式嗎? 我是寫在PHP上 之前有人講到exec()這函數! 我電腦系統是windows的 但是PHP5是不是不能用了? 好像透過cmd也可以做到匯入的動作,但是我的PHP沒辦法執行。會的人可以幫我一下嗎? 謝謝 <?php $host = "localhost"; $database = "$account"; //讀取使用者所輸入的 $user = "root"; $pass = "12345"; $sqlFileToExecute ="./aa.sql"; //要載入的來源檔(我放再同一個資料夾下) $con = mysql_connect($host,$user,$pass); $sql = " CREATE DATABASE `$account` " ; //建立使用者的資料庫 mysql_query($sql); mysql_select_db($database); if ($con !== false){ // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode(';',$sqlFile); } //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = mysql_query($stmt); if (!$result){ $sqlErrorCode = mysql_errno(); $sqlErrorText = mysql_error(); $sqlStmt = $stmt; break; } } } ?> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.198.94.137 ※ 編輯: hunter0711 來自: 60.198.94.137 (09/07 00:35)

09/07 10:50, , 1F
mysql語法改用php的mysqli 應該就可以執行多筆的SQL語法
09/07 10:50, 1F

09/07 11:05, , 2F
用 mysqli 容易被執行多重 SQL 語法攻擊
09/07 11:05, 2F

09/07 11:23, , 3F
痾~~要怎麼辦!找好久都沒有找到我要的方法= =
09/07 11:23, 3F

09/07 11:27, , 4F
可是他只有這次要執行這些sql語法吧~當然正式網頁不建議
09/07 11:27, 4F

09/07 11:41, , 5F
mysqli要怎麼寫?第一次接觸MYSQL今天你講我才知道有~
09/07 11:41, 5F

09/07 12:05, , 6F
那換個方向想假如是在mysql裡做單純的資料庫複製勒?
09/07 12:05, 6F


09/09 10:26, , 8F
我再來研究看看好哩 謝啦
09/09 10:26, 8F
文章代碼(AID): #1Ae-I3nL (Database)