<?php
/*
MYSQL 資料庫通路封裝類
MYSQL 資料通路方式,php4支援以mysql_開頭的過程通路方式,php5開始支援以mysqli_開頭的過程和mysqli面向對象
通路方式,本封裝類以mysql_封裝
資料通路的一般流程:
1,連接配接資料庫 mysql_connect or mysql_pconnect
2,選擇資料庫 mysql_select_db
3,執行SQL查詢 mysql_query
4,處理傳回的資料 mysql_fetch_array mysql_num_rows mysql_fetch_assoc mysql_fetch_row etc
*/
class db_mysql
{
var $querynum = 0 ; //目前頁面程序查詢資料庫的次數
var $dblink ; //資料庫連接配接資源
//連結資料庫
function connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0 , $halt=true)
{
$func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect' ;
$this->dblink = @$func($dbhost,$dbuser,$dbpw) ;
if ($halt && !$this->dblink)
{
$this->halt("無法連結資料庫!");
}
//設定查詢字元集
mysql_query("SET character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink) ;
//選擇資料庫
$dbname && @mysql_select_db($dbname,$this->dblink) ;
}
//選擇資料庫
function select_db($dbname)
return mysql_select_db($dbname,$this->dblink);
//執行SQL查詢
function query($sql)
$this->querynum++ ;
return mysql_query($sql,$this->dblink) ;
//傳回最近一次與連接配接句柄關聯的INSERT,UPDATE 或DELETE 查詢所影響的記錄行數
function affected_rows()
return mysql_affected_rows($this->dblink) ;
//取得結果集中行的數目,隻對select查詢的結果集有效
function num_rows($result)
return mysql_num_rows($result) ;
//獲得單格的查詢結果
function result($result,$row=0)
return mysql_result($result,$row) ;
//取得上一步 INSERT 操作産生的 ID,隻對表有AUTO_INCREMENT ID的操作有效
function insert_id()
return ($id = mysql_insert_id($this->dblink)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
//從結果集提取目前行,以數字為key表示的關聯數組形式傳回
function fetch_row($result)
return mysql_fetch_row($result) ;
//從結果集提取目前行,以字段名為key表示的關聯數組形式傳回
function fetch_assoc($result)
return mysql_fetch_assoc($result);
//從結果集提取目前行,以字段名和數字為key表示的關聯數組形式傳回
function fetch_array($result)
return mysql_fetch_array($result);
//關閉連結
function close()
return mysql_close($this->dblink) ;
//輸出簡單的錯誤html提示資訊并終止程式
function halt($msg)
$message = "<html>\n<head>\n" ;
$message .= "<meta content='text/html;charset=gb2312'>\n" ;
$message .= "</head>\n" ;
$message .= "<body>\n" ;
$message .= "資料庫出錯:".htmlspecialchars($msg)."\n" ;
$message .= "</body>\n" ;
$message .= "</html>" ;
echo $message ;
exit ;
}
?>