唐山网站建设

设为主页 加入收藏 繁體中文

PHP中对数据库操纵的封装

核心提示:PHP编程,PHP教程,PHP5教程,PHP开发

现在我们把其封装在dbfz.inc中,其设计以下:
$#@60;?
classdbInte***ce{var$dbID=1;//用于肯定当前操纵的数据库,当dbID为1代表MySql,当为2代表SQLServer,为3时为ODBC或其它。
var$dbHost;//数据库所在主机域名
var$dbUsername;//数据库用户名
var$dbPassword;//用户密码
//设置主机、用户名及密码函数
functionsetParameter($host,$username,$password){
$this-$#@62;dbUsername=$username;
$this-$#@62;dbHost=$host;
$this-$#@62;dbPassword=$password;
}
//联接数库函数
functiondbConnect(){
switch($this-$#@62;dbID)
{
case1;
return@mysql_connect($this-$#@62;dbHost,$this-$#@62;dbUsername,$this-$#@62;dbPassword);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}
//封闭数库函数
functiondbClose($dataHandle){
switch($this-$#@62;dbID)
{
case1;
mysql_close($dataHandle);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}

//履行SQL语句函数
functiondbQuery($dbName,$sql,$dbHandle){
switch($this-$#@62;dbID)
{
case1;
return@mysql_db_query($dbName,$sql,$dbHandle);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}

//检索SQL返回值确当前记录函数
functiondbFetchrow($dataHandle,$offset=⑴){
switch($this-$#@62;dbID)
{
case1;
@mysql_data_seek($dataHandle,$offset);
return@mysql_fetch_row($dataHandle);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}

#p#分页标题#e#

//返回检索记录数函数
functiondbNumrows($dataHandle){
switch($this-$#@62;dbID)
{
return@mysql_num_rows($dataHandle);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}


//返回检索列数函数
functiondbNumcols($dataHandle){
switch($this-$#@62;dbID)
{
case1;
return@mysql_num_fields($dataHandle);
case2;
//用支持SQLServer的函数
case3;
//用支持ODBC的函数
}
}
}


现把使用说明以下:

在程序中用dbInte***ce类生1个对象$test=newdbInte***ce;

设置参数
test-$#@62;$dbUsername;用户名
test-$#@62;$dbPassword;密码
test-$#@62;$dbHost;主机
voidsetParameter(stringhost,stringusername,stringpassword);

数据库连接:dbhandletest-$#@62;dbConnect();

返回值:fasle,数据库连接毛病
$#@62;0,数据库连接句柄

数据库封闭:voidtest-$#@62;dbClose(dbhandle);

表操纵:inttest-$#@62;dbQuery(stringdatabasename,stringsql,dbhandle);履行SQL语句

返回值:false,SQL履行毛病
$#@62;0,SQL履行正确,同时指向SQL返回值,

数据操纵:inttest-$#@62;dbFetchrow(dataHandle,intoffset);检索SQL返回值确当前记录,成功履行后,指针移向下1条记录
inttest-$#@62;dbNumrows(dataHandle);取得SQL履行后(主要为SELECT语句)取得的记录数
inttest-$#@62;dbNumcols(dataHandle);取得SQL履行后(主要为SELECT语句)取得的记录字段数

现在我们发1个例了讲授:

数据库采取MQSQL:其主机名为"localhost",用户名为"root"和密码""。
在mysql中有1个testdb数据库及其中的表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");//装载dbInte***ce类
$test=newdbInte***ce;//用类dbInte***ce天生1个对象
$test-$#@62;setParameter("localhost","root","");//设置数据库参数
$db=$test-$#@62;dbConnect();//连接数据库
$Query="SELECTname,payFROMtable";//设置SQL语句
$temp_result=$test-$#@62;dbQuery("testdb",$Query,$db);//履行数据主库操纵
echo"$#@60;br$#@62;";
$ls_num=$test-$#@62;dbNumrows($temp_result);//取得查询结果的记录数
echo$ls_num;
echo"$#@60;br$#@62;";
if(ls_num$#@62;0)
{
$ls_col=$test-$#@62;dbNumcols($db);//取得表的列数
echo$ls_col;
echo"$#@60;br$#@62;";
$cate_result=$test-$#@62;dbFetchrow($temp_result,0);//取得记录数的第1行
$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;
这就是1个简单的利用封装的类来完成对数据库的操纵。假设要操纵其它数据库只需要修改dbInte***ce类中的dbID变量即可.

唐山网站建设www.fw8.net
TAG:数据库,主机,函数,语句,数据库连接
评论加载中...
内容:
评论者: 验证码: