您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“PHP怎么實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“PHP怎么實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作”吧!
classdbInterface{var$dbID=1;//用于確定當(dāng)前操作的數(shù)據(jù)庫(kù),當(dāng)dbID為1代表MySql,當(dāng)為2代表SQLServer,為3時(shí)為ODBC或其它。
var$dbHost;//數(shù)據(jù)庫(kù)所在主機(jī)域名
var$dbUsername;//數(shù)據(jù)庫(kù)用戶(hù)名
var$dbPassword;//用戶(hù)密碼
//設(shè)置主機(jī)、用戶(hù)名及密碼函數(shù)
functionsetParameter($host,$username,$password){
$this->dbUsername=$username;
$this->dbHost=$host;
$this->dbPassword=$password;
}//聯(lián)接數(shù)庫(kù)函數(shù)
functiondbConnect(){
switch($this->dbID)
{
case1;
return@mysql_connect($this->dbHost,$this->dbUsername,$this->dbPassword);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
//關(guān)閉數(shù)庫(kù)函數(shù)
functiondbClose($dataHandle){
switch($this->dbID)
{
case1;
mysql_close($dataHandle);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
//執(zhí)行SQL語(yǔ)句函數(shù)
functiondbQuery($dbName,$sql,$dbHandle){
switch($this->dbID)
{
case1;
return@mysql_db_query($dbName,$sql,$dbHandle);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
//檢索SQL返回值的當(dāng)前記錄函數(shù)
functiondbFetchrow($dataHandle,$offset=-1){
switch($this->dbID)
{
case1;
@mysql_data_seek($dataHandle,$offset);
return@mysql_fetch_row($dataHandle);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
//返回檢索記錄數(shù)函數(shù)
functiondbNumrows($dataHandle){
switch($this->dbID)
{
case1;
return@mysql_num_rows($dataHandle);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
//返回檢索列數(shù)函數(shù)
functiondbNumcols($dataHandle){
switch($this->dbID)
{
case1;
return@mysql_num_fields($dataHandle);
case2;
//用支持SQLServer的函數(shù)
case3;
//用支持ODBC的函數(shù)
}
}
}
PHP中怎樣對(duì)數(shù)據(jù)庫(kù)操作的封裝
現(xiàn)把使用說(shuō)明如下:
在程序中用dbInterface類(lèi)生一個(gè)對(duì)象$test=newdbInterface;
設(shè)置參數(shù)
test->$dbUsername;用戶(hù)名
test->$dbPassword;密碼
test->$dbHost;主機(jī)
voidsetParameter(stringhost,stringusername,stringpassword);
數(shù)據(jù)庫(kù)連接:dbhandletest->dbConnect();
返回值:fasle,數(shù)據(jù)庫(kù)連接錯(cuò)誤
>0,數(shù)據(jù)庫(kù)連接句柄
數(shù)據(jù)庫(kù)關(guān)閉:voidtest->dbClose(dbhandle);
表操作:inttest->dbQuery(stringdatabasename,stringsql,dbhandle);執(zhí)行SQL語(yǔ)句
返回值:false,SQL執(zhí)行錯(cuò)誤
>0,SQL執(zhí)行正確,同時(shí)指向SQL返回值,
數(shù)據(jù)操作:inttest->dbFetchrow(dataHandle,intoffset);檢索SQL返回值的當(dāng)前記錄,成功執(zhí)行后,指針移向下一條記錄
inttest->dbNumrows(dataHandle);取得SQL執(zhí)行后(主要為SELECT語(yǔ)句)獲得的記錄數(shù)
inttest->dbNumcols(dataHandle);取得SQL執(zhí)行后(主要為SELECT語(yǔ)句)獲得的記錄字段數(shù)
現(xiàn)在我們發(fā)一個(gè)例了講解:
數(shù)據(jù)庫(kù)采用MQSQL:其主機(jī)名為"localhost",用戶(hù)名為"root"和密碼""。
在mysql中有一個(gè)testdb數(shù)據(jù)庫(kù)及其中的表table1,表包括:name和pay兩個(gè)字段
-----
require("testdb.inc");//裝載dbInterface類(lèi)
$test=newdbInterface;//用類(lèi)dbInterface生成一個(gè)對(duì)象
$test->setParameter("localhost","root","");//設(shè)置數(shù)據(jù)庫(kù)參數(shù)
$db=$test->dbConnect();//連接數(shù)據(jù)庫(kù)
$Query="SELECTname,payFROMtable";//設(shè)置SQL語(yǔ)句
$temp_result=$test->dbQuery("testdb",$Query,$db);//執(zhí)行數(shù)據(jù)主庫(kù)操作
echo"
";
$ls_num=$test->dbNumrows($temp_result);//取得查詢(xún)結(jié)果的記錄數(shù)
echo$ls_num;
echo"
";
if(ls_num>0)
{
$ls_col=$test->dbNumcols($db);//取得表的列數(shù)
echo$ls_col;
echo"
";
$cate_result=$test->dbFetchrow($temp_result,0);//取得記錄數(shù)的第一行
$hcid=$cate_result[0];//取得name的值
$hcate=$cate_result[1];//取得pay的值
echo$hcid;
echo"
";
echo$hcate;
}
?>
這就是一個(gè)簡(jiǎn)單的應(yīng)用封裝的類(lèi)來(lái)完成對(duì)數(shù)據(jù)庫(kù)的操作。如果要操作其它數(shù)據(jù)庫(kù)只需要修改dbInterface類(lèi)中的dbID變量即可。
到此,相信大家對(duì)“PHP怎么實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。