php数据库操作类(可用mysql,mssql,pg)

// -函数清单 索引:
// - Open: 打开数据库连接 Line:71
// - Close: 关闭数据库连接 Line:107
// - SelectDB: 选择数据库 Line:129
// - Query: 创建查询 Line:151
// - DataSeek: 移动记录指针 Line:175
// - FieldName: 获取字段名称 Line:198
// - FieldType: 获取字段类型 Line:220
// - FieldLenght: 获取字段长度 Line:242
// - FetchRow: 获取数据并保存到数组(数字索引) Line:264
// - FetchArray: 获取数据并保存进数组(数字和关联) Line:289
// - FetchObject: 获取数据并保存到对象(对象方式) Line:315
// - Result: 获取结果数据 Line:341
// - FreeResult: 刷新记录集 Line:363
// - RowsNumber: 获取记录数量 Line:385
// - FieldsNumber: 获取字段数量 Line:407
// - CurRecNumber: 获取当前记录号(从0开始) Line:429
// - RecordNumber: 获取当前行号(从1开始) Line:438
// - MoveFirstRec: 移动到第一条记录 Line:447
// - MoveLastRec: 移动到最后一条记录 Line:469
// - MovePreviousRec: 移动到前一条记录 Line:495
// - MoveNextRec: 移动到下一条记录 Line:521
// - MoveToRec: 移动到一个特定的记录(从1开始) Line:548

 

 代码如下 复制代码

< ?PHP

/**********************************************************************************

此类将数据库操作封装,具有良好的可移植性,针对数据库:mysql,mssql,pg

*原作者:Andrzej Manczyk 整理:玉面修罗 E-mail/msn:xiuluo-999@163.com 时间:2006-12-20*

************************************************************************************

// -函数清单 索引:

// - Open: 打开数据库连接 Line:71

// - Close: 关闭数据库连接 Line:107

// - SelectDB: 选择数据库 Line:129

// - Query: 创建查询 Line:151

// - DataSeek: 移动记录指针 Line:175

// - FieldName: 获取字段名称 Line:198

// - FieldType: 获取字段类型 Line:220

// - FieldLenght: 获取字段长度 Line:242

// - FetchRow: 获取数据并保存到数组(数字索引) Line:264

// - FetchArray: 获取数据并保存进数组(数字和关联) Line:289

// - FetchObject: 获取数据并保存到对象(对象方式) Line:315

// - Result: 获取结果数据 Line:341

// - FreeResult: 刷新记录集 Line:363

// - RowsNumber: 获取记录数量 Line:385

// - FieldsNumber: 获取字段数量 Line:407

// - CurRecNumber: 获取当前记录号(从0开始) Line:429

// - RecordNumber: 获取当前行号(从1开始) Line:438

// - MoveFirstRec: 移动到第一条记录 Line:447

// - MoveLastRec: 移动到最后一条记录 Line:469

// - MovePreviousRec: 移动到前一条记录 Line:495

// - MoveNextRec: 移动到下一条记录 Line:521

// - MoveToRec: 移动到一个特定的记录(从1开始) Line:548

************************************************************************************

//Inputs:

// - dbType: databases type: mssql, mysql, pg

// - connectType: connection type: c - common connection,

// p - open persistent connection

// - connect: for MS SQL Server - server name,

// for MySQL - hostname [:port] [:/path/to/socket] ,

// for PostgreSQL - host, port, tty, options,

// dbname (without username and password)

// - username

// - password

// - dbName: database name

// - query: SQL query

// - result: result set identifier

// - RowNumber:

// - offset: field identifier

// - ResultType: a constant and can take the following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH

// - FieldName

//

//Returns:

// - result: result set identifier

// - connect link identifier

// - record number (starting at 0: CurrRecNumber or starting at 1: RecordNumber)

// - number of fields in the specified result set

// - number of rows in the specified result set

*************************************************************************************/

Class mDatabase

{

/***********************************成员变量定义***************************************/

var $dbType; // 数据库类型: mssql, mysql, pg

var $connectType; // 连接类型: c - common connection, p - open persistent connection

var $idCon; // 连接号

var $curRow; // current row number of data from the result

// associated with the specified result identifier array

var $seek; // current row number of data from DataSeek function array

 

/***********************************成员方法实现***************************************/

/************************************************************************************

*连接数据库的函数

*************************************************************************************/

Function Open($dbType, $c, $connect, $username = "", $password = "")

{

$this->dbType = $dbType;

Switch ($dbType) {

Case "mssql":

If ($connectType == "c") {

$idCon = mssql_connect($connect, $username, $password);

} Else {

$idCon = mssql_pconnect($connect, $username, $password);

}

Break;

Case "mysql":

If ($connectType == "c") {

$idCon = mysql_connect($connect, $username, $password);

} Else {

$idCon = mysql_pconnect($connect, $username, $password);

}

Break;

Case "pg":

If ($connectType == "c") {

$idCon = pg_connect($connect . " user=" . $username . " password=" . $password);

} Else {

$idCon = pg_pconnect($connect . " user=" . $username . " password=" . $password);

}

Break;

Default:

$idCon = 0;

Break;

}

$this->idCon = $idCon;

Return $idCon;

}

/************************************************************************************

*关闭数据库连接

*************************************************************************************/

Function Close()

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_close($this->idCon);

Break;

Case "mysql":

$r = mysql_close($this->idCon);

Break;

Case "pg":

$r = pg_close($this->idCon);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*选择数据库

*************************************************************************************/

Function SelectDb($dbName)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_select_db($dbName);

Break;

Case "mysql":

$r = mysql_select_db($dbName);

Break;

Case "pg":

$r = False;

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*创建查询

*************************************************************************************/

Function Query($query)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_query($query, $this->idCon);

Break;

Case "mysql":

$r = mysql_query($query, $this->idCon);

Break;

Case "pg":

$r = pg_exec($this->idCon, $query);

Break;

Default:

$r = False;

Break;

}

$this->curRow[$r] = 0;

$this->seek[$r] = 0;

Return $r;

}

/************************************************************************************

*移动记录指针

*************************************************************************************/

Function DataSeek($result, $RowNumber)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_data_seek($result, $RowNumber);

Break;

Case "mysql":

$r = mysql_data_seek($result, $RowNumber);

Break;

Case "pg":

$r = False;

Break;

Default:

$r = False;

Break;

}

$this->seek[$result] = (int) $RowNumber;

Return $r;

}

/************************************************************************************

*获取字段名

*************************************************************************************/

Function FieldName($result, $offset)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_field_name($result, $offset);

Break;

Case "mysql":

$r = mysql_field_name($result, $offset);

Break;

Case "pg":

$r = pg_fieldname($result, $offset);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取字段类型

*************************************************************************************/

Function FieldType($result, $offset)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_field_type($result, $offset);

Break;

Case "mysql":

$r = mysql_field_type($result, $offset);

Break;

Case "pg":

$r = pg_fieldtype($result, $offset);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取字段长度

*************************************************************************************/

Function FieldLength($result, $offset)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_field_length($result, $offset);

Break;

Case "mysql":

$r = mysql_field_len($result, $offset);

Break;

Case "pg":

$r = pg_fieldsize($result, $offset);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取数据并保存到数组,可以用数字索引方式访问数组

*************************************************************************************/

Function FetchRow($result, $RowNumber = 0)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_fetch_row($result);

Break;

Case "mysql":

$r = mysql_fetch_row($result);

Break;

Case "pg":

$r = pg_fetch_row($result, $RowNumber);

If ($r) {

$this->curRow[$result] = $RowNumber;

$this->seek[$result] = $RowNumber;

}

Break;

Default:

$r = False;

Break;

}

Return $r;

}

 

/************************************************************************************

*获取数据并保存到数组,可以用数字索引和关联索引的方式访问

*************************************************************************************/

Function FetchArray($result, $RowNumber = 0, $ResultType = 2)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_fetch_array($result);

Break;

Case "mysql":

$r = mysql_fetch_array($result);

Break;

Case "pg":

$r = pg_fetch_array($result, $RowNumber, $ResultType);

If ($r) {

$this->curRow[$result] = $RowNumber;

$this->seek[$result] = $RowNumber;

}

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取数据并保存到对象

*************************************************************************************/

Function FetchObject($result, $RowNumber = 0, $ResultType = 2)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_fetch_object($result);

Break;

Case "mysql":

$r = mysql_fetch_object($result);

Break;

Case "pg":

$r = pg_fetch_object($result, $RowNumber, $ResultType);

If ($r) {

$this->curRow[$result] = $RowNumber;

$this->seek[$result] = $RowNumber;

}

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取结果数据

*************************************************************************************/

Function Result($result, $RowNumber, $FieldName)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_result($result, $RowNumber, $FieldName);

Break;

Case "mysql":

$r = mysql_result($result, $RowNumber, $FieldName);

Break;

Case "pg":

$r = pg_result($result, $RowNumber, $FieldName);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*释放结果数据

*************************************************************************************/

Function FreeResult($result)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_free_result($result);

Break;

Case "mysql":

$r = mysql_free_result($result);

Break;

Case "pg":

$r = pg_freeresult($result);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取记录数量

*************************************************************************************/

Function RowsNumber($result)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_num_rows($result);

Break;

Case "mysql":

$r = mysql_num_rows($result);

Break;

Case "pg":

$r = pg_numrows($result);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取字段数量

*************************************************************************************/

Function FieldsNumber($result)

{

Switch ($this->dbType) {

Case "mssql":

$r = mssql_num_fields($result);

Break;

Case "mysql":

$r = mysql_num_fields($result);

Break;

Case "pg":

$r = pg_numfields($result);

Break;

Default:

$r = False;

Break;

}

Return $r;

}

/************************************************************************************

*获取当前记录号(从0开始)

*************************************************************************************/

Function CurRecNumber($result)

{

$r = $this->curRow[$result];

Return $r;

}

/************************************************************************************

*获取当前行号(从1开始)

*************************************************************************************/

Function RecordNumber($result)

{

$cr = $this->CurRecNumber($result) + 1;

Return $cr;

}

/************************************************************************************

*移动到第一条记录

*************************************************************************************/

Function MoveFirstRec($result)

{

Switch ($this->dbType) {

Case "pg":

$r = $this->FetchRow($result, 0);

Break;

Default:

$rn = $this->DataSeek($result, 0);

If ($rn) {

$r = $this->FetchRow($result);

If ($r) $this->curRow[$result] = $this->seek[$result];

} Else {

$r = False;

}

Break;

}

Return $r;

}

/************************************************************************************

*移动到最后一条记录

*************************************************************************************/

Function MoveLastRec($result)

{

$rs = $this->RowsNumber($result);

If ($rs) {

$rs--;

Switch ($this->dbType) {

Case "pg":

$r = $this->FetchRow($result, $rs);

Break;

Default:

$rn = $this->DataSeek($result, $rs);

If ($rn) {

$r = $this->FetchRow($result);

If ($r) $this->curRow[$result] = $this->seek[$result];

} Else {

$r = False;

}

Break;

}

}

Return $r;

}

/************************************************************************************

*移动到前一条记录

*************************************************************************************/

Function MovePreviousRec($result)

{

$rs = $this->CurRecNumber($result);

If ($rs) {

$rs--;

Switch ($this->dbType) {

Case "pg":

$r = $this->FetchRow($result, $rs);

Break;

Default:

$rn = $this->DataSeek($result, $rs);

If ($rn) {

$r = $this->FetchRow($result);

If ($r) $this->curRow[$result] = $this->seek[$result];

} Else {

$r = False;

}

Break;

}

}

Return $r;

}

/************************************************************************************

*移动到下一条记录

*************************************************************************************/

Function MoveNextRec($result)

{

$rs = $this->CurRecNumber($result);

$rn = $this->RowsNumber($result);

$rs++;

If ($rs != $rn) {

Switch ($this->dbType) {

Case "pg":

$r = $this->FetchRow($result, $rs);

Break;

Default:

$re = $this->FetchRow($result);

If ($re) {

$r = $re;

$this->curRow[$result]++;

$this->seek[$result] = $this->curRow[$result];

} Else {

$r = False;

}

Break;

}

}

Return $r;

}

/************************************************************************************

*移动到指定记录(编号从0开始)

*************************************************************************************/

Function MoveToRec($result, $RowNumber)

{

$rn = $this->RowsNumber($result);

If ($RowNumber > 0 And $RowNumber < $rn) {

$RowNumber--;

Switch ($this->dbType) {

Case "pg":

$r = $this->FetchRow($result, $RowNumber);

Break;

Default:

$rn = $this->DataSeek($result, $RowNumber);

If ($rn) {

$r = $this->FetchRow($result);

If ($r) $this->curRow[$result] = $this->seek[$result];

} Else {

$r = False;

}

Break;

}

}

Return $r;

}

}

//********************************方法实现完毕****************************************//

?>

时间: 2024-09-20 19:09:38

php数据库操作类(可用mysql,mssql,pg)的相关文章

php实现可用于mysql,mssql,pg数据库操作类_php技巧

本文实例讲述了可用mysql,mssql,pg三种数据库的数据库操作类,你只要作任何修改就可以方便的改变你数据库的类型.分享给大家供大家参考.具体分析如下: 函数清单,索引: Open:打开数据库连接 Line:71 Close:关闭数据库连接 Line:107 SelectDB:选择数据库 Line:129 Query:创建查询 Line:151 DataSeek:移动记录指针 Line:175 FieldName:获取字段名称 Line:198 FieldType:获取字段类型 Line:2

强大的php数据库操作类,支持mysql,mssql,pg

本文实例讲述了可用mysql,mssql,pg三种数据库的数据库操作类,你只要作任何修改就可以方便的改变你数据库的类型.分享给大家供大家参考.具体分析如下: 函数清单,索引: Open:打开数据库连接 Line:71 Close:关闭数据库连接 Line:107 SelectDB:选择数据库 Line:129 Query:创建查询 Line:151 DataSeek:移动记录指针 Line:175 FieldName:获取字段名称 Line:198 FieldType:获取字段类型 Line:2

php实现的mysql数据库操作类

 这篇文章主要介绍了php实现的mysql数据库操作类,本文最后有使用方法,需要的朋友可以参考下  代码如下: <?php /* 数据库操作类 */ class Mysql{  private $LocalHost = 'localhost';  private $LoaclUser = 'root';  private $LocalPass = '123456';  private $LocalBase = 'jiangxibaiyi';  private $LocalCode = 'UTF8

php实现mysql数据库操作类分享_php实例

复制代码 代码如下: <?php/*数据库操作类*/class Mysql{ private $LocalHost = 'localhost'; private $LoaclUser = 'root'; private $LocalPass = '123456'; private $LocalBase = 'jiangxibaiyi'; private $LocalCode = 'UTF8'; private $PreFix; private $Conn; private $Start    

数据库操作类mysql/mysqli/pdo

PDO,MySQL,MYSQLI的各自不同介绍,PDO,MYSQL,MYSQLI 性能哪个比较好 普通的mysql连接肯定是会被抛弃的 因为每次都要防止sql注入的问题 而且相对来说比较慢 首先, mysqli 连接是永久连接,而mysql是非永久连接 .什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力. mysqli是在普通mysql的基础上做的一次优化说实话很成功 预处理方式完全解决了sql注入的

从一个不错的留言本弄的mysql数据库操作类_php技巧

从一个不错的留言本弄的mysql数据库操作类,初学php的朋友可以参考下 复制代码 代码如下: <?php class mysql{     var $querynum = 0;     function connect($dbhost, $dbuser, $dbpw, $dbname = '',$dbcharset='') {         if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {             $this->show('Can

简单快速有趣的MySQL数据库操作类:SimpleDB

mysql|数据|数据库 自己写着玩的,代码没有测试,不过觉得思路不错,如果能够加上部分异常处理的功能,应该比较帅了,支持PHP4/PHP5,恩,虽然没有ADOdb或者PEAR::DB强,不错一般应用应该不错,恩. 喜欢的就自己拿去用吧,自己随便改,呵呵,也欢迎提意见.(注释遵循PHPDoc的标准,便于生成手册)  注意:代码未经测试,出现问题可要自己负责哇,呵呵.         <?//==========================================// 文件: Simp

mysql+php数据库操作类

mysql+php数据库操作类 class DbQueryForMysql {  /**   * select方法返回的最大记录数   */  const MAX_ROW_NUM = 1000;  /**   * 数据查询结果集对象   * @var object $dataSet   */  public $dataSet   = NULL ;  /**   * 数据源对象   * @var object $ds   */  public $ds    = NULL ;  /**   * 查询

php pdo mysql数据库操作类

原文:php pdo mysql数据库操作类   findAll(array( 'field'=>'ID,albumName,albumImage, mainActor,directors,tags,info,area, keywords,wflag,year,mod_version,totalDuration', 'where'=>$where, 'order'=>'flag desc,hit_count desc', 'limit'=>"{$limit['offset