discuz7 phpMysql操作类


Posted in PHP onJune 21, 2009
<?php 
/* 
* MySql数据库连接类 
* mysql.class.php 2009.04.15 by Hackbaby 
*/ 
class dbstuff { 
var $version = ''; 
var $querynum = 0; 
var $link = null; 
//连接数据库 
function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0, $halt = TRUE, $dbcharset2 = '') { 
$conn = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect'; 
if (!$this->link = @$conn($dbhost, $dbuser, $dbpw, 1)) { 
$halt && $this->halt('Can not connect to MySQL server'); 
} else { 
if($this->version() > '4.1') { 
global $charset, $dbcharset; 
$dbcharset = $dbcharset2 ? $dbcharset2 : $dbcharset; 
$dbcharset = !$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $charset) : $dbcharset; 
$serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : ''; 
$serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : ''; 
$serverset && mysql_query("SET $serverset", $this->link); 
} 
$dbname && @mysql_select_db($dbname, $this->link); 
} } 
//选择数据库 
function select_db($dbname) { 
return mysql_select_db($dbname, $this->link); 
} 
//数据库执行后的返回方法 
function fetch_array($query, $result_type = MYSQL_ASSOC) { 
return mysql_fetch_array($query, $result_type); 
} 
//返回fetch_array方法执行后的返回值 
function fetch_first($sql) { 
return $this->fetch_array($this->query($sql)); 
} 
//返回result方法执行后的返回值 
function result_first($sql) { 
return $this->result($this->query($sql), 0); 
} 
//执行对数据库的操作 
function query($sql, $type = '') { 
global $debug, $discuz_starttime, $sqldebug, $sqlspenttimes; 
//判断debug调试 
if(defined('SYS_DEBUG') && SYS_DEBUG) { 
@include_once WEB_ROOT.'./include/debug.func.php'; 
sqldebug($sql); 
} 
// 
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 
'mysql_unbuffered_query' : 'mysql_query'; 
if(!($query = $func($sql, $this->link))) { 
if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'RETRY') { 
$this->close(); 
require './config.inc.php'; 
$this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset); 
$this->query($sql, 'RETRY'.$type); 
} elseif($type != 'SILENT' && substr($type, 5) != 'SILENT') { 
$this->halt('MySQL Query Error', $sql); 
} 
} 
//查询条数加1 
$this->querynum++; 
return $query; 
} 
//取得前一次 MySQL 操作所影响的记录行数 
function affected_rows() { 
return mysql_affected_rows($this->link); 
} 
//数据库的文本错误提示 
function error() { 
return (($this->link) ? mysql_error($this->link) : mysql_error()); 
} 
//返回上一个 MySQL 操作中的错误信息的数字编码 
function errno() { 
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); 
} 
//返回数据库操作结果 
function result($query, $row = 0) { 
$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); 
} 
//取得上一步 INSERT 操作产生的 ID 
function insert_id() { 
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); 
} 
//以数组的形式返回查询结果 
function fetch_row($query) { 
$query = mysql_fetch_row($query); 
return $query; 
} 
//从结果集中取得列信息并作为对象返回 
function fetch_fields($query) { 
return mysql_fetch_field($query); 
} 
//获取Mysql的版本 
function version() { 
if(empty($this->version)) { 
$this->version = mysql_get_server_info($this->link); 
} 
return $this->version; 
} 
//关闭连接 
function close() { 
return mysql_close($this->link); 
} 
//错误提示 
function halt($message = '', $sql = '') { 
define('CACHE_FORBIDDEN', TRUE); 
require_once WEB_ROOT . './include/db_mysql_error.inc.php'; 
} 
} 
?>
PHP 相关文章推荐
我常用的几个类
Oct 09 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
Mar 13 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
用PHP生成excel文件到指定目录
Jun 22 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
php实现图片缩略图的方法
Mar 29 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 #PHP
ie6 动态缩略图不显示的原因
Jun 21 #PHP
PHP COOKIE设置为浏览器进程
Jun 21 #PHP
PHP 输出缓存详解
Jun 20 #PHP
php 图像函数大举例(非原创)
Jun 20 #PHP
PHP 类型转换函数intval
Jun 20 #PHP
php MYSQL 数据备份类
Jun 19 #PHP
You might like
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
php仿ZOL分页类代码
2008/10/02 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
python实现博客文章爬虫示例
2014/02/26 Python
Python标准异常和异常处理详解
2015/02/02 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
详解Python自建logging模块
2018/01/29 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
python如何从键盘获取输入实例
2020/06/18 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
大学生自我评价范文分享
2014/02/21 职场文书
大学生暑期实践感言
2014/02/26 职场文书
校本教研活动总结
2014/07/01 职场文书
公司更名通知函
2015/04/24 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书