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正则
Jul 07 PHP
聊天室php&amp;mysql(一)
Oct 09 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
php 禁止页面缓存输出
Jan 07 PHP
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
php实现的递归提成方案实例
Nov 14 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP实现SMTP邮件的发送实例
Sep 27 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获取网络文件的实现代码
2010/01/01 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
python的绘图工具matplotlib使用实例
2014/07/03 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python  logging日志打印过程解析
2019/10/22 Python
python生成任意频率正弦波方式
2020/02/25 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
python函数超时自动退出的实操方法
2020/12/28 Python
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
招聘单位介绍信
2014/01/14 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
高中军训第一天感言
2014/03/06 职场文书
党员干部承诺书
2014/03/25 职场文书
捐书活动倡议书
2015/04/27 职场文书
Python实战之实现简易的学生选课系统
2021/05/25 Python
浅析Python中的套接字编程
2021/06/22 Python
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏