[SQL ] 程式除錯
這是有關於將讀取的.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
09/07 10:50, 1F
推
09/07 11:05, , 2F
09/07 11:05, 2F
→
09/07 11:23, , 3F
09/07 11:23, 3F
推
09/07 11:27, , 4F
09/07 11:27, 4F
→
09/07 11:41, , 5F
09/07 11:41, 5F
→
09/07 12:05, , 6F
09/07 12:05, 6F
推
09/07 12:08, , 7F
09/07 12:08, 7F
→
09/09 10:26, , 8F
09/09 10:26, 8F