首页 php教程 php手册 PHP中对数据库操作的封装

PHP中对数据库操作的封装

Jun 21, 2016 am 09:06 AM
case sql test

封装|数据|数据库

现在我们把其封装在dbfz.inc中,其设计如下:
$#@60;?
class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表MySql,当为 2代表 SQL Server,为3时为ODBC或其它。
var $dbHost; //数据库所在主机域名
var $dbUsername; //数据库用户名
var $dbPassword; //用户密码
//设置主机、用户名及密码函数
function setParameter($host,$username,$password){
$this-$#@62;dbUsername=$username;
$this-$#@62;dbHost=$host;
$this-$#@62;dbPassword=$password;
}
//联接数库函数
function dbConnect(){
switch($this-$#@62;dbID)
{
case 1;
return @mysql_connect($this-$#@62;dbHost,$this-$#@62;dbUsername,$this-$#@62;dbPassword);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}
}
//关闭数库函数
function dbClose($dataHandle){
switch($this-$#@62;dbID)
{
case 1;
mysql_close($dataHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}
}

//执行SQL语句函数
function dbQuery($dbName,$sql,$dbHandle){
switch($this-$#@62;dbID)
{
case 1;
return @mysql_db_query($dbName,$sql,$dbHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}
}

//检索SQL返回值的当前记录函数
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的函数
case 3;
//用支持ODBC的函数
}
}

//返回检索记录数函数
function dbNumrows($dataHandle){
switch($this-$#@62;dbID)
{
return @mysql_num_rows($dataHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}
}


//返回检索列数函数
function dbNumcols($dataHandle){
switch($this-$#@62;dbID)
{
case 1;
return @mysql_num_fields($dataHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}
}
}


现把使用说明如下:

在程序中用dbInterface类生一个对象$test=new dbInterface;

设置参数
test-$#@62;$dbUsername ;用户名
test-$#@62;$dbPassword;密码
test-$#@62;$dbHost;主机
void setParameter(string host, string username, string password);

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

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

数据库关闭:void test-$#@62;dbClose(dbhandle);

表操作:int test-$#@62;dbQuery(string databasename, string sql,dbhandle);执行SQL语句

返回值: false, SQL执行错误
$#@62;0, SQL执行正确, 同时指向SQL返回值,

数据操作:int test-$#@62;dbFetchrow(dataHandle,int offset);检索SQL返回值的当前记录,成功执行后,指针移向下一条记录
int test-$#@62;dbNumrows(dataHandle); 取得SQL执行后(主要为SELECT语句)获得的记录数
int test-$#@62;dbNumcols(dataHandle); 取得SQL执行后(主要为SELECT语句)获得的记录字段数

现在我们发一个例了讲解:

  数据库采用MQSQL:其主机名为 "localhost",用户名为"root"和密码""。
在mysql中有一个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"); //装载dbInterface类
$test = new dbInterface;//用类dbInterface生成一个对象
$test-$#@62;setParameter("localhost","root","");//设置数据库参数
$db = $test-$#@62;dbConnect();//连接数据库
$Query = "SELECT name,pay FROM table ";//设置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);//取得记录数的第一行
$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;
  这就是一个简单的应用封装的类来完成对数据库的操作。如果要操作其它数据库只需要修改dbInterface类中的dbID变量即可.

 



本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为Watch GT 5智能手表获得新功能更新 华为Watch GT 5智能手表获得新功能更新 Oct 03, 2024 am 06:25 AM

华为正在全球推出Watch GT 5和Watch GT 5 Pro智能手表的软件版本5.0.0.100(C00M01)。这两款智能手表最近在欧洲推出,标准型号是该公司最便宜的型号。这和谐

铁拳桑德斯上校的梦想被肯德基炸了 铁拳桑德斯上校的梦想被肯德基炸了 Oct 02, 2024 am 06:07 AM

《铁拳》系列总监原田胜宏曾认真尝试过将桑​​德斯上校带入这款标志性格斗游戏中。在接受 TheGamer 采访时,原田透露,他向日本肯德基提出了这个想法,希望将这位快餐传奇人物纳入其中。

第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 Oct 01, 2024 am 06:32 AM

2024 年 9 月早些时候,Anker 的 Zolo 140W 充电器被泄露,这是该公司首款带显示屏的壁式充电器,这引起了轰动。现在,小李TV在YouTube上发布的新开箱视频让我们亲眼目睹了这款hi

三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 Oct 01, 2024 am 06:21 AM

三星期待已久的“特别版”可折叠手机的推出又迎来了另一个转折。最近几周,有关所谓 Galaxy Z Fold 特别版的传言相当安静。相反,焦点已转移到 Galaxy S25 系列,包括

搭载 HyperOS 的新款小米米家石墨烯油汀到货 搭载 HyperOS 的新款小米米家石墨烯油汀到货 Oct 02, 2024 pm 09:02 PM

小米即将在中国推出米家石墨烯油汀取暖器。该公司最近在其优品平台上成功举办了一次智能家居产品众筹活动。根据页面显示,该设备已经开始发货至

Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Oct 01, 2024 am 06:40 AM

Garmin 将于本月底为其最新的高端智能手表提供一组新的稳定更新。回顾一下,该公司发布了系统软件 11.64,以解决 Enduro 3、Fenix E 和 Fenix 8 的高电池消耗问题(亚马逊售价 1,099.99 美元)。

Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Oct 01, 2024 am 06:16 AM

特斯拉正在推出最新的全自动驾驶(监督)版本 12.5.5,并最终带来了承诺的 Cyber​​truck FSD 选项,距离皮卡上市十个月后,该功能包含在基础系列的装饰价格中。 F

Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Oct 02, 2024 am 06:06 AM

Manjaro 已有十多年的历史,被认为是最用户友好的 Linux 发行版之一,适合初学者和高级用户,易于安装和使用。这个基于 Arch 的发行版主要在奥地利、德国和法国开发

See all articles