king71 发表于 2017-4-5 06:29:09

[转]php通用连接数据库类

                     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;                        
}                        

                                  
页: [1]
查看完整版本: [转]php通用连接数据库类