【導讀】本文封裝了一個按照ADO的習慣書寫的MySQL的操作類,供參考學習。
class MySQLDB
{
//MySQL數據庫操作類
//作者:熊毅
//版本:2.0(發行版)
//可以自由轉載,修改請通知我[email protected]
//轉載請保留以上聲明
//使用說明:
//該類完全按照ADO的習慣書寫的,用過ASP的人都覺得ASP連接數據庫比PHP好用(這是我的感覺),
//但PHP得一個一個API地寫,挺累,該類做了完全的封裝
//創建類的實例時可以指定一個數據庫表和選擇的數據庫,如:new MySQLDB("table","database");
//查詢數據時Query後可以用GetValue得到相應的值,既可以是字段名也可以是已0開始的序號
//插入新值,先用AddNew後使用SetValue相應的字段名或序號和字段值,在用Update添加
//編輯時用Edit指定編輯記錄的條件在使用SetValue,最後用Update添加
//在類使用過程中,sTName記錄上次使用的數據庫表名,當指定後可以直接使用,以後的操作默認在該表
//上進行操作,當然也可以每次指定特殊的表進行操作
//nErr指示是否操作出錯,sErr記錄最後一次出錯的錯誤代碼,記錄了明確的有哪個函數引起的錯誤
//錯誤之處請指正
//歡迎來信與我交流編程經驗:[email protected]
//我的CSDN:用戶號:scxy;呢稱:小熊,請多關照
//可以自由轉載,修改請通知我[email protected]
//轉載請保留以上聲明
var $host="localhost"; //主機名
var $user="boot"; //用戶名
var $passWord="oaserver"; //用戶密碼
var $linkid; //連接值
var $dbid; //數據庫選擇的結果值
var $sTName; //指定當前操作的數據庫表
var $sErr; //錯誤代碼
var $nErr; //指示是否有錯誤存在,0無錯誤,1有錯誤
var $nResult; //查詢結果值
var $aFName; //保存FIEldsName的數組
var $nRows; //查詢結果中的行數
var $nCols; //查詢結果中的列數
var $aNew; //添加在AddNew函數後的數據,以數組形式保存
var $NewEdit; //判斷當前是否在進行添加操作,0表示沒有,1表示在進行添加,2表示編輯
var $sEditCon; //指定編輯記錄的條件
var $nOffset; //記錄偏移量
var $EOF; //標記是否到記錄集尾
var $sSQL; //最後一條執行的SQL語句
//執行Update所要用到的全局變量
var $sName; //字段名
var $sValue; //字段值AddNew時用
var $sEdit; //字段值Edit時用
function Initialize()
{
$this->nErr=0;
$this->NewEdit=0;
$this->nResult=-1;
$this->nCols=0;
$this->nRows=0;
$this->nOffset=0;
$this->EOF=true;
$this->sName="";
$this->sValue="#@!";
$this->sEdit="#@!";
unset($this->aFName);
unset($this->aNew);
}
function MySQLDB($TableName="",$database="slt") //構造函數
{
$this->Initialize();
$this->sTName=$TableName;
$this->linkid=MySQL_connect($host,$user,$passWord);
if(!$this->linkid)
{
$this->nErr=1;
$this->sErr="MySQLDB:數據庫連接出錯,請啟動服務!";
return;
}
$this->dbid=MySQL_select_db($database);
if(!$this->dbid)
{
$this->nErr=1;
$this->sErr="MySQLDB:選擇的數據庫".$database."不存在!";
return;
}
}
function IsEmpty($Value)
{
if(is_string($Value)&&empty($Value))
return true;
return false;
}
function Destroy() //數據清除處理
{
MySQL_query("commit");
MySQL_close();
}
function PrintErr()
{
if($this->nErr==1)
{
echo($this->sErr."<br><br>");
}
else
{
echo(&qu