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 相关文章推荐
Cannot modify header information错误解决方法
Oct 08 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php中随机显示图片的函数代码
Jun 23 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
Dec 30 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
mysq GBKl乱码
2006/11/28 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
利用python批量检查网站的可用性
2016/09/09 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python调用百度REST API实现语音识别
2018/08/30 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
教师对学生的寄语
2014/04/03 职场文书
检讨书怎么写
2015/01/23 职场文书
队名及霸气口号大全
2015/12/25 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL
Python制作表白爱心合集
2022/01/22 Python
nginx 配置缓存
2022/05/11 Servers