現(xiàn)在我們把其封裝在dbfz.inc中,其設(shè)計如下: $#@60;? class dbInterface{ var $dbID=1; //用于確定當前操作的數(shù)據(jù)庫,當dbID為1代表MySql,當為 2代表 SQL Server,為3時為ODBC或其它。 var $dbHost; //數(shù)據(jù)庫所在主機域名 var $dbUsername; //數(shù)據(jù)庫用戶名 var $dbPassword; //用戶密碼 //設(shè)置主機、用戶名及密碼函數(shù) function setParameter($host,$username,$password){ $this-$#@62;dbUsername=$username; $this-$#@62;dbHost=$host; $this-$#@62;dbPassword=$password; } //聯(lián)接數(shù)庫函數(shù) function dbConnect(){ switch($this-$#@62;dbID) { case 1; return @mysql_connect($this-$#@62;dbHost,$this-$#@62;dbUsername,$this-$#@62;dbPassword); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } //關(guān)閉數(shù)庫函數(shù) function dbClose($dataHandle){ switch($this-$#@62;dbID) { case 1; mysql_close($dataHandle); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } //執(zhí)行SQL語句函數(shù) function dbQuery($dbName,$sql,$dbHandle){ switch($this-$#@62;dbID) { case 1; return @mysql_db_query($dbName,$sql,$dbHandle); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } //檢索SQL返回值的當前記錄函數(shù) function dbFetchrow($dataHandle,$offset=-1){ switch($this-$#@62;dbID) { case 1; @mysql_data_seek($dataHandle,$offset); return @mysql_fetch_row($dataHandle); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } [page_break]//返回檢索記錄數(shù)函數(shù) function dbNumrows($dataHandle){ switch($this-$#@62;dbID) { return @mysql_num_rows($dataHandle); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } //返回檢索列數(shù)函數(shù) function dbNumcols($dataHandle){ switch($this-$#@62;dbID) { case 1; return @mysql_num_fields($dataHandle); case 2; //用支持SQL Server的函數(shù) case 3; //用支持ODBC的函數(shù) } } }
現(xiàn)把使用說明如下:
在程序中用dbInterface類生一個對象$test=new dbInterface; 設(shè)置參數(shù) test-$#@62;$dbUsername ;用戶名 test-$#@62;$dbPassword;密碼 test-$#@62;$dbHost;主機 void setParameter(string host, string username, string password); 數(shù)據(jù)庫連接:dbhandle test-$#@62;dbConnect(); 返回值:fasle ,數(shù)據(jù)庫連接錯誤 $#@62;0, 數(shù)據(jù)庫連接句柄 數(shù)據(jù)庫關(guān)閉:void test-$#@62;dbClose(dbhandle); 表操作:int test-$#@62;dbQuery(string databasename, string sql,dbhandle);執(zhí)行SQL語句 返回值: false, SQL執(zhí)行錯誤 $#@62;0, SQL執(zhí)行正確, 同時指向SQL返回值, 數(shù)據(jù)操作:int test-$#@62;dbFetchrow(dataHandle,int offset);檢索SQL返回值的當前記錄,成功執(zhí)行后,指針移向下一條記錄 int test-$#@62;dbNumrows(dataHandle); 取得SQL執(zhí)行后(主要為SELECT語句)獲得的記錄數(shù) int test-$#@62;dbNumcols(dataHandle); 取得SQL執(zhí)行后(主要為SELECT語句)獲得的記錄字段數(shù) 現(xiàn)在我們發(fā)一個例了講解: 數(shù)據(jù)庫采用MQSQL:其主機名為 "localhost",用戶名為"root"和密碼""。 在mysql中有一個testdb數(shù)據(jù)庫及其中的表table1,表包括:name和pay兩個字段 ----- $#@60;HTML$#@62;$#@60;HEAD$#@62; $#@60;TITLE$#@62;test$#@60;/TITLE$#@62; $#@60;/HEAD$#@62;$#@60;BODY$#@62; $#@60;P$#@62; $#@60;?php require("testdb.inc"); //裝載dbInterface類 $test = new dbInterface;//用類dbInterface生成一個對象 $test-$#@62;setParameter("localhost","root","");//設(shè)置數(shù)據(jù)庫參數(shù) $db = $test-$#@62;dbConnect();//連接數(shù)據(jù)庫 $Query = "SELECT name,pay FROM table ";//設(shè)置SQL語句 $temp_result = $test-$#@62;dbQuery("testdb",$Query,$db);//執(zhí)行數(shù)據(jù)主庫操作 echo "$#@60;br$#@62;"; $ls_num = $test-$#@62;dbNumrows($temp_result); //取得查詢結(jié)果的記錄數(shù) echo $ls_num; echo "$#@60;br$#@62;"; if (ls_num$#@62;0 ) { $ls_col = $test-$#@62;dbNumcols($db); //取得表的列數(shù) echo $ls_col; echo "$#@60;br$#@62;"; $cate_result=$test-$#@62;dbFetchrow($temp_result,0);//取得記錄數(shù)的第一行 $hcid=$cate_result[0];// 取得name的值 $hcate=$cate_result[1];//取得pay的值 echo $hcid; echo "$#@60;br$#@62;"; echo $hcate; } ?$#@62; $#@60;HR$#@62; $#@60;ADDRESS$#@62;$#@60;/ADDRESS$#@62; $#@60;/BODY$#@62;$#@60;/HTML$#@62; 這就是一個簡單的應(yīng)用封裝的類來完成對數(shù)據(jù)庫的操作。如果要操作其它數(shù)據(jù)庫只需要修改dbInterface類中的dbID變量即可.
|