寫了一個串連資料庫的通用類,SQL語句執行有問題
有兩個檔案SqlTool.php和connector-test.php,SqlTool的代碼如下:
class SqlTool
{
private $conn;
private $host="localhost";
private $user="root";
private $password="root";
private $db="db1";
function SqlTool()
{
$this->conn=mysql_connect($this->host,$this->user,$this->password);
if(!$this->conn)
{
echo("未串連資料庫");
}
mysql_select_db($db,$this->conn);
mysql_query("set names utf8");
}
function execute_dml($sql)
{
$b=mysql_query($sql,$this->conn);
if(!$b)
{
return 0;
}
else
{
if(mysql_affected_rows($this->conn)>0)
{
return 1;
}
else
{
return 2;
}
}
}
}
?>
connector-test的代碼如下:
require_once "SqlTool.php";
$sql="insert into table1 values(5,'187388','op')";
$st=new SqlTool();
$res=$st->execute_dml($sql);
if($res==0)
{
echo "執行未成功";
}
else if($res==1)
{
echo "執行成功";
}
else if($res==2)
{
echo "沒有行數影響";
}
?>
現運行connector-test.php,總是顯示執行未成功,不知道什麼原因。望高手賜教。系統為Fedora15。
------解決方案--------------------
sql指令有錯!
既然要封裝資料庫操作,就要把各種情況都考慮到
主要是封裝錯誤處理
------解決方案--------------------
PHP code
#SqlTool.php……$b=mysql_query($sql,$this->conn);#加一句:if(!$b) die("SQL-->>: {$sql}
Error-->>: " . mysql_error() ); //如果出錯將sql語句和mysql錯誤全部打出來……
------解決方案--------------------
可能執行過一次成功插入
後來的插入因為5是主索引值,失敗,要列印出錯誤如#2。加油……封裝了再寫架構