发一个discuz中的操作mysql的类
这个类是discuz中的,稍作修改
mysql_db.php
<?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;
}
}
?> ;
举个例子:
<?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>';
}
?> ;