改造自discuz的mysql查询类

本文介绍了一个用于简化MySQL数据库操作的PHP类。该类提供了一系列的方法来处理数据库连接、查询、结果集管理和错误处理等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. <?php  
  2. /** 
  3.  * mysql查询类 
  4.  * 
  5.  */  
  6. class dbQuery {  
  7.     /** 
  8.      * 查询总次数 
  9.      * 
  10.      * @var int 
  11.      */  
  12.     var $querynum = 0;  
  13.     /** 
  14.      * 连接句柄 
  15.      * 
  16.      * @var object 
  17.      */  
  18.     var $link;  
  19.       
  20.     /** 
  21.      * 构造函数 
  22.      * 
  23.      * @param string $dbhost 主机名 
  24.      * @param string $dbuser 用户 
  25.      * @param string $dbpw   密码 
  26.      * @param string $dbname 数据库名 
  27.      * @param int $pconnect 是否持续连接 
  28.      */  
  29.     function dbQuery($dbhost$dbuser$dbpw$dbname = ''$pconnect = 0) {  
  30.         if($pconnect) {  
  31.             if(!$this->link = @mysql_pconnect($dbhost$dbuser$dbpw)) {  
  32.                 $this->halt('Can not connect to MySQL server');  
  33.             }  
  34.         } else {  
  35.             if(!$this->link = @mysql_connect($dbhost$dbuser$dbpw)) {  
  36.                 $this->halt('Can not connect to MySQL server');  
  37.             }  
  38.         }  
  39.         if($this->version() > '4.1') {  
  40.             global $dbcharset;  
  41.             if($dbcharset) {  
  42.                 mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary"$this->link);  
  43.             }  
  44.   
  45.             if($this->version() > '5.0.1') {  
  46.                 mysql_query("SET sql_mode=''"$this->link);  
  47.             }  
  48.         }  
  49.   
  50.         if($dbname) {  
  51.             mysql_select_db($dbname$this->link);  
  52.         }  
  53.   
  54.     }  
  55.     /** 
  56.      * 选择数据库 
  57.      * 
  58.      * @param string $dbname 
  59.      * @return  
  60.      */  
  61.     function select_db($dbname) {  
  62.         return mysql_select_db($dbname$this->link);  
  63.     }  
  64.     /** 
  65.      * 取出结果集中一条记录 
  66.      * 
  67.      * @param object $query 
  68.      * @param int $result_type 
  69.      * @return array 
  70.      */  
  71.     function fetch_array($query$result_type = MYSQL_ASSOC) {  
  72.         return mysql_fetch_array($query$result_type);  
  73.     }  
  74.       
  75.     /** 
  76.      * 查询SQL 
  77.      * 
  78.      * @param string $sql 
  79.      * @param string $type 
  80.      * @return object 
  81.      */  
  82.     function query($sql$type = '') {  
  83.           
  84.         $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?  
  85.             'mysql_unbuffered_query' : 'mysql_query';  
  86.         if(!($query = $func($sql$this->link)) && $type != 'SILENT') {  
  87.             $this->halt('MySQL Query Error'$sql);  
  88.         }  
  89.   
  90.         $this->querynum++;  
  91.         return $query;  
  92.     }  
  93.     /** 
  94.      * 取影响条数 
  95.      * 
  96.      * @return int 
  97.      */  
  98.     function affected_rows() {  
  99.         return mysql_affected_rows($this->link);  
  100.     }  
  101.     /** 
  102.      * 返回错误信息 
  103.      * 
  104.      * @return array 
  105.      */  
  106.     function error() {  
  107.         return (($this->link) ? mysql_error($this->link) : mysql_error());  
  108.     }  
  109.     /** 
  110.      * 返回错误代码 
  111.      * 
  112.      * @return int 
  113.      */  
  114.     function errno() {  
  115.         return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());  
  116.     }  
  117.     /** 
  118.      * 返回查询结果 
  119.      * 
  120.      * @param object $query 
  121.      * @param string $row 
  122.      * @return mixed 
  123.      */  
  124.     function result($query$row) {  
  125.         $query = @mysql_result($query$row);  
  126.         return $query;  
  127.     }  
  128.     /** 
  129.      * 结果条数 
  130.      * 
  131.      * @param object $query 
  132.      * @return int 
  133.      */  
  134.     function num_rows($query) {  
  135.         $query = mysql_num_rows($query);  
  136.         return $query;  
  137.     }  
  138.     /** 
  139.      * 取字段总数 
  140.      * 
  141.      * @param object $query 
  142.      * @return int 
  143.      */  
  144.     function num_fields($query) {  
  145.         return mysql_num_fields($query);  
  146.     }  
  147.     /** 
  148.      * 释放结果集 
  149.      * 
  150.      * @param object $query 
  151.      * @return bool 
  152.      */  
  153.     function free_result($query) {  
  154.         return mysql_free_result($query);  
  155.     }  
  156.     /** 
  157.      * 返回自增ID 
  158.      * 
  159.      * @return int 
  160.      */  
  161.     function insert_id() {  
  162.         return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);  
  163.     }  
  164.     /** 
  165.      * 从结果集中取得一行作为枚举数组 
  166.      * 
  167.      * @param object $query 
  168.      * @return array 
  169.      */  
  170.     function fetch_row($query) {  
  171.         $query = mysql_fetch_row($query);  
  172.         return $query;  
  173.     }  
  174.     /** 
  175.      * 从结果集中取得列信息并作为对象返回 
  176.      * 
  177.      * @param object $query 
  178.      * @return object 
  179.      */  
  180.     function fetch_fields($query) {  
  181.         return mysql_fetch_field($query);  
  182.     }  
  183.     /** 
  184.      * 返回mysql版本 
  185.      * 
  186.      * @return string 
  187.      */  
  188.     function version() {  
  189.         return mysql_get_server_info($this->link);  
  190.     }  
  191.     /** 
  192.      * 关闭连接 
  193.      * 
  194.      * @return bool 
  195.      */  
  196.     function close() {  
  197.         return mysql_close($this->link);  
  198.     }  
  199.     /** 
  200.      * 输出错误信息 
  201.      * 
  202.      * @param string $message 
  203.      * @param string $sql 
  204.      */  
  205.     function halt($message = ''$sql = '') {  
  206.         echo $message . ' ' . $sql;  
  207.         exit;  
  208.   
  209.     }  
  210. }  
  211.   
  212. ?> 

改造自discuz的mysql查询类

使用查询类的好处在于可以快速行数据库的替换,比如 我现在要使用sql server只要再写一个mssql的类,sql少许改动就可以完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值