好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

文章分享的这篇文章是因为这篇文章数据库操作类可用mysql,mssql,pg三种数据库,你只要作任何修改就可以方便的改变你数据库的类型.

函数清单,索引:

php数据库操作类代码如下:

<?PHP    /**********************************************************************************     此类将数据库操作封装,具有良好的可移植性,针对数据库:mysql,mssql,pg     *原作者:Andrzej Manczyk 整理:玉面修罗 E-mail/msn:xiuluo-999@163测试数据 时间: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 );  //开源代码phpfensi测试数据   If ( $rn ) {    $r  =  $this ->FetchRow( $result );    If ( $r )  $this ->curRow[ $result ] =  $this ->seek[ $result ];    } Else {    $r  = False;    }    Break;    }    }    Return  $r ;    }    }    //********************************方法实现完毕****************************************//     ?>

查看更多关于php数据库操作类,可用mysql,mssql,pg - php类库的详细内容...

  阅读:40次