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 相关文章推荐
一些关于PHP的知识
Nov 17 PHP
php+javascript的日历控件
Nov 19 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
php类常量用法实例分析
Jul 09 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
java解析json方法总结
May 16 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 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
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
新闻内页-JS分页
2006/06/07 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python list使用示例 list中找连续的数字
2014/01/27 Python
Python中的字符串替换操作示例
2016/06/27 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
秘书英文求职信范文
2014/01/31 职场文书
教师节活动主持词
2014/04/02 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL