<?php
/**
* 数据库操作
*/
//!defined('IN_MUDDER') && exit('Access Denied');
class Db_class {
var $query_num = 0;
var $link;
function Db_class($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
$this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
}
/**
* 连接数据库
*
* @param string $dbhost 数据库服务器地址
* @param string $dbuser 数据库用户名
* @param string $dbpw 数据库密码
* @param string $dbname 数据库名
* @param integer $pconnect 是否持久链接 [0=否] [1=是]
*/
function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
global $dbcharset;
$dbcharset="utf8";
$func = $pconnect= 0 ? "mysql_connect" : "mysql_pconnect";
if(!$this->link = @$func($dbhost, $dbuser, $dbpw)) {
$this->halt("Can not connect to MySQL server");
}
$pconnect == 0 ? @mysql_connect($dbhost, $dbuser, $dbpw) : @mysql_pconnect($dbhost, $dbuser, $dbpw);
mysql_errno() != 0 && $this->halt("Connect($pconnect) to MySQL ($dbhost,$dbuser) failed");
if($this->server_info() > '4.1' && $dbcharset)
mysql_query("SET NAMES '" . $dbcharset . "'", $this->link);
if($this->server_info() > '5.0')
mysql_query("SET sql_mode=''", $this->link);
if($dbname) {
if (!@mysql_select_db($dbname, $this->link)) $this->halt('Cannot use database '.$dbname);
}
}
/**
* 选择一个数据库
*
* @param string $dbname 数据库名
*/
function select_db($dbname) {
$this->dbname = $dbname;
if (!@mysql_select_db($dbname, $this->link))
$this->halt('Cannot use database '.$dbname);
}
/**
* 查询数据库版本信息
*
* @return string
*/
function server_info() {
return mysql_get_server_info();
}
function version() {
return mysql_get_server_info();
}
/**
* 发送一条 MySQL 查询
*
* @param string $SQL SQL语法
* @param string $method 查询方式 [空=自动获取并缓存结果集] [unbuffer=并不获取和缓存结果的行]
* @return resource 资源标识符
*/
function query($SQL, $method = '') {
if($method == 'unbuffer' && function_exists('mysql_unbuffered_query')){