PHP数据库类的封装
来源:互联网 发布:自考和成考和网络教育 编辑:程序博客网 时间:2024/05/29 09:23
我们经常使用数据库操作,如果把数据可的链接和操作写为一个类,将大大提高代码的重用性。
一 数据库连接类
创建数据库连接类文件:found.database.php,并存储与根目录下的conn文件中。数据库连接文件的代码如下:
<?phpclass ConnDB{//数据库连接类var $dbtype;//定义成员变量,数据库类型var $host;//定义成员变量,数据库服务器 var $user;//定义成员变量,服务器用户名 var $pwd;//定义成员变量,服务器密码 var $dbname;//定义数据库名称 var $debug;//定义返回错误信息 var $conn; //定义返回的连接标识 function __construct($dbtype,$host,$user,$pwd,$dbname,$debug=false){//构造方法,为成员变量赋值$this->dbtype=$dbtype; $this->host=$host;$this->user=$user;$this->pwd=$pwd;$this->dbname=$dbname;$this->debug=$debug;} function GetConnId(){ //实现与不同数据库的连接并返回连接对象 require("../adodb5/adodb.inc.php");//调用ADODB类库文件 if($this->dbtype=="mysql" || $this->dbtype=="mssql"){//判断成员变量传递的数据库类型 if($this->dbtype=="mysql")//判断如果是MySQL数据库 $this->conn=NewADOConnection("mysql");//执行与MySQl数据库的连接 else $this->conn=NewADOConnection("mssql"); $this->conn->Connect($this->host,$this->user,$this->pwd,$this->dbname);//数据库连接的用户、密码}elseif($this->dbtype=="access"){//判断如果使用的是Access数据库 $this->conn=NewADOConnection("access"); $this->conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=".$this->dbname.";Uid=".$this->user.";Pwd=".$this->pwd.";");//执行连接Access数据库 } $this->conn->Execute("set names gbk");//设置数据库的编码格式 if($this->dbtype=="mysql") $this->conn->debug=$this->debug; return $this->conn;//返回连接对象 }function CloseConnId(){//定义关闭数据库的方法 $this->conn->Disconnect();//执行关闭的操作 }}?>
数据库连接类创建成功后,对类惊醒实例化操作,并传递相应的参数。这里将实例化操作存储到conn文件夹的connect.database.php文件中,其代码如下:
<?phprequire("found.database.php");//包含类文件//数据库连接类实例化$connobj=new ConnDB("mysql","localhost","root","root","db_database12",true);$conn=$connobj->GetConnId();//返回连接标识if($conn){echo "数据库连接成功";}else{echo "数据库连接失败!";}?>
创建index.php文件,通过include_once语句包含connect.database.php文件,返回数据库连接的结果。代码如下:
<?phpinclude_once 'conn/connect.database.php';//包含数据库连接和操作类的实例化文件?>
二、数据库操作类
下面编写一个数据库操作类,这样就可以在程序中实现与数据库的交互了。将数据库的操作类也存储在found.database.php文件中。插入Admin类后found.database.php的完整代码如下:
<?php//数据库连接类class ConnDB{//数据库连接类var $dbtype;//定义成员变量,数据库类型var $host;//定义成员变量,数据库服务器 var $user;//定义成员变量,服务器用户名 var $pwd;//定义成员变量,服务器密码 var $dbname;//定义数据库名称 var $debug;//定义返回错误信息 var $conn; //定义返回的连接标识 function __construct($dbtype,$host,$user,$pwd,$dbname,$debug=false){//构造方法,为成员变量赋值$this->dbtype=$dbtype; $this->host=$host;$this->user=$user;$this->pwd=$pwd;$this->dbname=$dbname;$this->debug=$debug;} function GetConnId(){ //实现与不同数据库的连接并返回连接对象 require("../adodb5/adodb.inc.php");//调用ADODB类库文件 if($this->dbtype=="mysql" || $this->dbtype=="mssql"){//判断成员变量传递的数据库类型 if($this->dbtype=="mysql")//判断如果是MySQL数据库 $this->conn=NewADOConnection("mysql");//执行与MySQl数据库的连接 else $this->conn=NewADOConnection("mssql"); $this->conn->Connect($this->host,$this->user,$this->pwd,$this->dbname);//数据库连接的用户、密码}elseif($this->dbtype=="access"){//判断如果使用的是Access数据库 $this->conn=NewADOConnection("access"); $this->conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=".$this->dbname.";Uid=".$this->user.";Pwd=".$this->pwd.";");//执行连接Access数据库 } $this->conn->Execute("set names gbk");//设置数据库的编码格式 if($this->dbtype=="mysql") $this->conn->debug=$this->debug; return $this->conn;//返回连接对象 }function CloseConnId(){//定义关闭数据库的方法 $this->conn->Disconnect();//执行关闭的操作 }}class AdminDB{//数据库管理类function ExecSQL($sqlstr,$conn){//定义方法,参数为SQl语句和连接数据库返回的对象$sqltype=strtolower(substr(trim($sqlstr),0,6));//截取SQL中的前6个字符串,并转换成小写$rs=$conn->Execute($sqlstr);//执行SQL语句if($sqltype=="select"){//判断如果SQL语句的类型为SELECT$array=$rs->GetRows();//执行该语句,获取查询结果if(count($array)==0 || $rs==false)//判断语句是否执行成功return false;//如果查询结果为0,或者执行失败,则返回falseelsereturn $array;//否则返回查询结果的数组}elseif ($sqltype=="update" || $sqltype=="insert" || $sqltype=="delete"){//判断如果SQL语句类型不为select、则执行如下操作if($rs) return true;//执行成功返回trueelse return false; //是否返回false}}}?>
在Admin类中定义ExecSQL()方法,其中包括两个参数,一个是执行的SQL语句,另一个是数据库连接成功后的连接标识。
Admin类创建成功后同样需要进行类的实例化操作,并将其也存储在conn文件夹的connect.database.php文件中,代码如下:
<?phprequire("found.database.php");//包含类文件//数据库连接类实例化$connobj=new ConnDB("mysql","localhost","root","root","db_database12",false);$conn=$connobj->GetConnId();//数据库操作类实例化$admindb=new AdminDB();?>
创建index.php文件,通过include_once语句包含数据库操作类的实例化文件,调用类中的数据库操作方法,执行查询操作,并数据查询结果。index.php代码如下:
<?phpinclude_once 'conn/connect.database.php';//调用类中方法$array=$admindb->ExecSQL("select * from tb_user where id limit 10 ",$conn);//分页读取数据库中数据for($i=0;$i<count($array);$i++){//循环输出数据库中数据 echo $array[$i][0];}?>
- php 数据库的封装类
- PHP数据库类的封装
- PHP数据库类的封装
- php---数据库类封装
- php封装操作数据库的类
- php实现封装数据库的类文件
- php封装操作数据库的类
- php封装操作数据库的类
- PHP封装数据库操作类
- PHP数据库操作类封装
- php使用adodb类库操作数据库-类的封装
- 一个php操作数据库的封装类,超实用.
- PHP中面向对象封装的数据库(基)类
- php封装一个简单的数据库操作类
- PHP类的封装
- PHP中对数据库操作的封装
- PHP中对数据库操作的封装
- PHP中对数据库操作的封装
- 如何将一个变量和一个字符串合并为一个新的变量
- Hibenate学习笔记
- DSO分类
- O'Reilly Learning Sql on SQL Server 2005学习总结
- 小布老师oracle学习笔记--Tablespace_and_Datafiles
- PHP数据库类的封装
- 像写论文一样写博客——严格要求
- c# 下 socket 客户端 编程
- 计算机英语
- Linux常用命令~(Ubuntu 9.1下测试)(一)(导入自原博客)
- OSCache的使用入门
- android 线程间的通信
- Ubuntu linux命令(二)(导入自原博客)
- Ubuntu Linux命令(三)(导入自原博客)