发一个discuz中的操作mysql的类

发一个discuz中的操作mysql的类

这个类是discuz中的,稍作修改

mysql_db.php

[复制到剪切板]
CODE:
<?php

class dbclass{
    var 
$querynum 0;

    function 
connect($dbhost$dbuser$dbpw$dbname '',$dbcharset=''$pconnect 0) {
        if(
$pconnect) {
            if(!@
mysql_pconnect($dbhost$dbuser$dbpw)) {
                
$this->halt('Can not connect to MySQL server');
            }
        } else {
            if(!@
mysql_connect($dbhost$dbuser$dbpw)) {
                
$this->halt('Can not connect to MySQL server');
            }
        }

        if(
$dbcharset) {
            if(!
$dbcharset && in_array(strtolower($charset), array('gbk''big5''utf-8'))) {
                
$dbcharset str_replace('-'''$charset);
            }
            if(
$dbcharset) {
                
$this->query("SET NAMES '$dbcharset'");
            }
        }

        if(
$dbname) {
            
mysql_select_db($dbname);
        }

    }

    function 
select_db($dbname) {
        return 
mysql_select_db($dbname);
    }

    function 
fetch_array($query$result_type MYSQL_ASSOC) {
    
//MYSQL_ASSOC用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。MYSQL_BOTH是默认的,可以是数字也可以是关联索引
        
return mysql_fetch_array($query$result_type);
    }

    function 
query($sql$type '') {
        
$func $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
            
'mysql_unbuffered_query' 'mysql_query';
        if(!(
$query $func($sql)) && $type != 'SILENT') {
            
$this->halt('MySQL Query Error'$sql);
        }
        
$this->querynum++;
        return 
$query;
        
/*mysql_unbuffered_query() 向 MySQL 发送一条 SQL 查询 query,但不像 mysql_query() 那样自动获取并缓存结果集。一方面,这在处理很大的结果集时会节省可观的内存。另一方面,可以在获取第一行后立即对结果集进行操作,而不用等到整个 SQL 语句都执行完毕。当使用多个数据库连接时,必须指定可选参数 link_identifier。 */
    
}

    function 
affected_rows() {
        return 
mysql_affected_rows();
    }

    function 
error() {
        return 
mysql_error();
    }

    function 
errno() {
        return 
intval(mysql_errno());
    }

    function 
result($query$row) {
        
$query = @mysql_result($query$row);
        return 
$query;
    }

    function 
num_rows($query) {
        
$query mysql_num_rows($query);
        return 
$query;
    }

    function 
num_fields($query) {
        return 
mysql_num_fields($query);
    }

    function 
free_result($query) {
        return 
mysql_free_result($query);
    }

    function 
insert_id() {
        
$id mysql_insert_id();
        return 
$id;
    }

    function 
fetch_row($query) {
        
$query mysql_fetch_row($query);
        return 
$query;
    }

    function 
version() {
        return 
mysql_get_server_info();
    }

    function 
close() {
        return 
mysql_close();
    }

    function 
halt($message ''$sql '') {
        if(!
$sql) echo $message;
        else echo 
$message.'<br>'.$sql;
    }
}

?> ;


举个例子:

[复制到剪切板]
CODE:
<?php 
require("mysql_db.php");
$db = new dbclass();
$db->connect('localhost''root''','test');
$query $db->query('select * from test');
while(
$row $db->fetch_array($query)) {
echo 
$row['id'].'<br>';
}
?> ;


如履薄冰

学习中,不错.

学到了!谢谢