[轉載]mysql数据库操作——DB类

FROM http://www.blueidea.com/tech/program/2008/5665.asp

 

 

ExpandedBlockStart.gif 代码
<? php
/*
 *    mysql数据库 DB类
 *    @package    db
 *    @author        yytcpt(无影)
 *    @version    2008-03-27
 *    @copyrigth    http://www.d5s.cn/ 
 
*/
class  db {
    
var   $connection_id   =   "" ;
    
var   $pconnect   =   0 ;
    
var   $shutdown_queries   =   array ();
    
var   $queries   =   array ();
    
var   $query_id   =   "" ;
    
var   $query_count   =   0 ;
    
var   $record_row   =   array ();
    
var   $failed   =   0 ;
    
var   $halt   =   "" ;
    
var   $query_log   =   array ();
    
function  connect( $db_config ){
        
if  ( $this -> pconnect){
            
$this -> connection_id  =   mysql_pconnect ( $db_config [ " hostname " ] ,   $db_config [ " username " ] ,   $db_config [ " password " ]);
        }
else {
            
$this -> connection_id  =   mysql_connect ( $db_config [ " hostname " ] ,   $db_config [ " username " ] ,   $db_config [ " password " ]);
        }
        
if  (  !   $this -> connection_id ){
            
$this -> halt( " Can not connect MySQL Server " );
        }
        
if  (  !  @ mysql_select_db ( $db_config [ " database " ] ,   $this -> connection_id) ){
            
$this -> halt( " Can not connect MySQL Database " );
        }
        
if  ( $db_config [ " charset " ]) {
            @
mysql_unbuffered_query ( " SET NAMES ' " . $db_config [ " charset " ] . " ' " );
        }
        
return   true ;
    }
    
// 发送SQL 查询,并返回结果集
     function  query( $query_id ,   $query_type = ' mysql_query ' ){
        
$this -> query_id  =   $query_type ( $query_id ,   $this -> connection_id);
        
$this -> queries[]  =   $query_id ;
        
if  ( !   $this -> query_id ) {
            
$this -> halt( " 查询失败:\n $query_id " );
        }
        
$this -> query_count ++ ;
        
$this -> query_log[]  =   $str ;
        
return   $this -> query_id;
    }
    
// 发送SQL 查询,并不获取和缓存结果的行
     function  query_unbuffered( $sql = "" ){
        
return   $this -> query( $sql ,   ' mysql_unbuffered_query ' );
    }
    
// 从结果集中取得一行作为关联数组
     function  fetch_array( $sql   =   "" ){
        
if  ( $sql   ==   "" $sql   =   $this -> query_id;
        
$this -> record_row  =  @ mysql_fetch_array ( $sql ,  MYSQL_ASSOC);
        
return   $this -> record_row;
    }
    
function  shutdown_query( $query_id   =   "" ){
        
$this -> shutdown_queries[]  =   $query_id ;
    }
    
// 取得结果集中行的数目,仅对 INSERT,UPDATE 或者 DELETE
     function  affected_rows() {
        
return  @ mysql_affected_rows ( $this -> connection_id);
    }
    
// 取得结果集中行的数目,仅对 SELECT 语句有效
     function  num_rows( $query_id = "" ) {
        
if  ( $query_id   ==   "" $query_id   =   $this -> query_id;
        
return  @ mysql_num_rows ( $query_id );
    }
    
// 返回上一个 MySQL 操作中的错误信息的数字编码
     function  get_errno(){
        
$this -> errno  =  @ mysql_errno ( $this -> connection_id);
        
return   $this -> errno;
    }
    
// 取得上一步 INSERT 操作产生的 ID
     function  insert_id(){
        
return  @ mysql_insert_id ( $this -> connection_id);
    }
    
// 得到查询次数
     function  query_count() {
        
return   $this -> query_count;
    }
    
// 释放结果内存
     function  free_result( $query_id = "" ){
           
if  ( $query_id   ==   "" $query_id   =   $this -> query_id;
        @
mysql_free_result ( $query_id );
    }
    
// 关闭 MySQL 连接
     function  close_db(){
        
if  (  $this -> connection_id )  return  @ mysql_close $this -> connection_id );
    }
    
// 列出 MySQL 数据库中的表
     function  get_table_names(){
        
global   $db_config ;
        
$result   =   mysql_list_tables ( $db_config [ " database " ]);
        
$num_tables   =  @ mysql_numrows ( $result );
        
for  ( $i   =   0 $i   <   $num_tables $i ++ ) {
            
$tables []  =   mysql_tablename ( $result ,   $i );
        }
        
mysql_free_result ( $result );
        
return   $tables ;
       }
    
// 从结果集中取得列信息并作为对象返回,取得所有字段
     function  get_result_fields( $query_id = "" ){
           
if  ( $query_id   ==   "" $query_id   =   $this -> query_id;
        
while  ( $field   =   mysql_fetch_field ( $query_id )) {
            
$fields []  =   $field ;
        }
        
return   $fields ;
       }
    
// 错误提示
     function  halt( $the_error = "" ){
        
$message   =   $the_error . " <br/>\r\n " ;
        
$message .=   $this -> get_errno()  .   " <br/>\r\n " ;
        
$sql   =   " INSERT INTO `db_error`(pagename, errstr, timer) VALUES(' " . $_SERVER [ " PHP_SELF " ] . " ', ' " . addslashes ( $message ) . " ',  " . time () . " ) " ;
        @
mysql_unbuffered_query ( $sql );
        
if  (DEBUG == true ){
            
echo   " <html><head><title>MySQL 数据库错误</title> " ;
            
echo   " <style type=\ " text / css\ " ><!--.error { font: 11px tahoma, verdana, arial, sans-serif, simsun; }--></style></head>\r\n " ;
            
echo   " <body>\r\n " ;
            
echo   " <blockquote>\r\n " ;
            
echo   " <textarea class=\ " error\ "  rows=\ " 15 \ "  cols=\ " 100 \ "  wrap=\ " on\ "  > "   .   htmlspecialchars ( $message .   " </textarea>\r\n " ;
            
echo   " </blockquote>\r\n</body></html> " ;
            
exit ;
        }
    }
    
function  __destruct(){
        
$this -> shutdown_queries  =   array ();
        
$this -> close_db();
    }
    
function  sql_select( $tbname ,   $where = "" ,   $limit = 0 ,   $fields = " * " ,   $orderby = " id " ,   $sort = " DESC " ){
        
$sql   =   " SELECT  " . $fields . "  FROM ` " . $tbname . " " . ( $where ? "  WHERE  " . $where : "" ) . "  ORDER BY  " . $orderby . "   " . $sort . ( $limit   ?   "  limit  " . $limit : "" );
        
return   $sql ;
    }
    
function  sql_insert( $tbname ,   $row ){
        
foreach  ( $row   as   $key => $value ) {
            
$sqlfield   .=   $key . " , " ;
            
$sqlvalue   .=   " ' " . $value . " ', " ;
        }
        
return   " INSERT INTO ` " . $tbname . " `( " . substr ( $sqlfield ,   0 ,   - 1 ) . " ) VALUES ( " . substr ( $sqlvalue ,   0 ,   - 1 ) . " ) " ;
    }
    
function  sql_update( $tbname ,   $row ,   $where ){
        
foreach  ( $row   as   $key => $value ) {
            
$sqlud   .=   $key . " = ' " . $value . " ', " ;
        }
        
return   " UPDATE ` " . $tbname . " ` SET  " . substr ( $sqlud ,   0 ,   - 1 ) . "  WHERE  " . $where ;
    }
    
function  sql_delete( $tbname ,   $where ){
        
return   " DELETE FROM ` " . $tbname . " ` WHERE  " . $where ;
    }
    
// 新增加一条记录
     function  row_insert( $tbname ,   $row ){
        
$sql   =   $this -> sql_insert( $tbname ,   $row );
        
return   $this -> query_unbuffered( $sql );
    }
    
// 更新指定记录
     function  row_update( $tbname ,   $row ,   $where ){
        
$sql   =   $this -> sql_update( $tbname ,   $row ,   $where );
        
return   $this -> query_unbuffered( $sql );
    }
    
// 删除满足条件的记录
     function  row_delete( $tbname ,   $where ){
        
$sql   =   $this -> sql_delete( $tbname ,   $where );
        
return   $this -> query_unbuffered( $sql );
    }
    
/*     根据条件查询,返回所有记录
     *    $tbname 表名, $where 查询条件, $limit 返回记录, $fields 返回字段
     
*/
    
function  row_select( $tbname ,   $where = "" ,   $limit = 0 ,   $fields = " * " ,   $orderby = " id " ,   $sort = " DESC " ){
        
$sql   =   $this -> sql_select( $tbname ,   $where ,   $limit ,   $fields ,   $orderby ,   $sort );
        
return   $this -> row_query( $sql );
    }
    
// 详细显示一条记录
     function  row_select_one( $tbname ,   $where ,   $fields = " * " ,   $orderby = " id " ){
        
$sql   =   $this -> sql_select( $tbname ,   $where ,   1 ,   $fields ,   $orderby );
        
return   $this -> row_query_one( $sql );
    }
    
function  row_query( $sql ){
        
$rs       =   $this -> query( $sql );
        
$rs_num   =   $this -> num_rows( $rs );
        
$rows   =   array ();
        
for ( $i = 0 $i < $rs_num $i ++ ){
            
$rows []  =   $this -> fetch_array( $rs );
        }
        
$this -> free_result( $rs );
        
return   $rows ;
    }
    
function  row_query_one( $sql ){
        
$rs       =   $this -> query( $sql );
        
$row   =   $this -> fetch_array( $rs );
        
$this -> free_result( $rs );
        
return   $row ;
    }
    
// 计数统计
     function  row_count( $tbname ,   $where = "" ){
        
$sql   =   " SELECT count(id) as row_sum FROM ` " . $tbname . " " . ( $where ? "  WHERE  " . $where : "" );
        
$row   =   $this -> row_query_one( $sql );
        
return   $row [ " row_sum " ];
    }
}
?>

 

 

ExpandedBlockStart.gif 代码
<? php
    
$db_config [ " hostname " ]     =   " 127.0.0.1 " ;     // 服务器地址
     $db_config [ " username " ]     =   " root " ;         // 数据库用户名
     $db_config [ " password " ]     =   " root " ;         // 数据库密码
     $db_config [ " database " ]     =   " wap_blueidea_com " ;         // 数据库名称
     $db_config [ " charset " ]         =   " utf8 " ;
    
include ( ' db.php ' );
    
$db      =   new  db();
    
$db -> connect( $db_config );
    
// 例:查询表 table_name 中 cid=1的所有记录。
     $row   =   $db -> row_select( ' table_name ' ,   ' cid=1 ' );
?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值