设为首页 收藏本站
查看: 475|回复: 0

[经验分享] [转]php通用连接数据库类

[复制链接]

尚未签到

发表于 2017-4-5 06:29:09 | 显示全部楼层 |阅读模式
                     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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360237-1-1.html 上篇帖子: PHP中如何得到网卡MAC地址 下篇帖子: 用PHP写的一个web升级脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表