PHP中对数据库操作的封装

2016-01-29 14:49 6 1 收藏

PHP中对数据库操作的封装,PHP中对数据库操作的封装

【 tulaoshi.com - PHP 】

  PHP中对数据库操作的封装

在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序。这是一件枯燥、费时而且容易出错的功作。其实我们可以用PHP中的类来实现对数据库操作的封装,从而使写出的程序在很小的改动下就可以完成后台数据库的更改。
  现在我们把其封装在dbfz.inc中,其设计如下:

<?
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-dbUsername=$username;
$this-dbHost=$host;
$this-dbPassword=$password;

} //联接数库函数
function dbConnect(){
switch($this-dbID)
{
case 1;
return @mysql_connect($this-dbHost,$this-dbUsername,$this-dbPassword);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}  
}
//关闭数库函数
function dbClose($dataHandle){
switch($this-dbID)
{
case 1;
mysql_close($dataHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}  
}

//执行SQL语句函数
function dbQuery($dbName,$sql,$dbHandle){
switch($this-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-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-dbID)
{
case 1;
return @mysql_num_rows($dataHandle);
case 2;
//用支持SQL Server的函数
case 3;
//用支持ODBC的函数
}  
}

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

现把使用说明如下:

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

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

数据库连接:dbhandle test-dbConnect();

返回值:fasle ,数据库连接错误
0, 数据库连接句柄

数据库关闭:void test-dbClose(dbhandle);

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

返回值: false, SQL执行错误
0, SQL执行正确, 同时指向SQL返回值,

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

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

  数据库采用MQSQL:其主机名为 "localhost",用户名为"root"和密码""。
在mysql中有一个testdb数据库及其中的表table1,表包括:name和pay两个字段

-----
<HTML<HEAD
<TITLEtest</TITLE
</HEAD<BODY
<P <?php
require("testdb.inc"); //装载dbInterface类
$test = new dbInterface;//用类dbInterface生成一个对象
$test-setParameter("localhost","root","");//设置数据库参数
$db = $test-dbConnect();//连接数据库
$Query = "SELECT name,pay FROM table ";//设置SQL语句
$temp_result = $test-dbQuery("testdb",$Query,$db);//执行数据主库操作
echo "<br";
$ls_num = $tes

来源:http://www.tulaoshi.com/n/20160129/1494368.html

延伸阅读
  /*******************************  * 功能:数据库操作相关  * 作者:FlashICP  * 时间:2005-7-22  * ******************************/ using System; using System.Data; using System.Data.SqlClient; using System.Web; namespace moban {  public class data  {   protected static strin...
编写的把文件的内容写入到数据库的代码如下 首先 建立 数据库表 id char data image(注意此处不要用text类型 text类型与binary不兼容) 代码如下: import java.io.*; import java.sql.*; public class Db { public static void main(String[] args) { Db ac = new Db(); String blobname = "D:\\test1.txt"; //blob...
标签: PHP
  通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍P...
要实现对数据库的操作,离不开数据源(DataSource)或者连接(Connection),但是通常来说对数据库的操作都应该放在DAO中,而DAO又不应该与应用服务器相关联,所以一般都使用连接(Connection)。现在我们这里就有一个问题了,怎么在拦截器中获得连接。我想可以通过两种方式获得: 在分别讨论这两种方法之前,我们需要先讨论一下在处理数据库...
标签: PHP
我看了那篇《怎样在PHP中通过ADO调用Asscess数据库和COM程序》文章后,马上作了测试,结果失败了。伤心是不是。 怎么办?我只好去PHP官方网站求助,皇天不负有心人,终于我找到了答案 具体的解决方法如下: (1)进入http://php.weblogs.com/adodb,下载相应的ZIP包;同MICROSOFT公司的ADO一样,该东东用PHP实现ADO同各种各...

经验教程

629

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部