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 15 PHP
PHP 简单日历实现代码
Oct 28 PHP
php pack与unpack 摸板字符字符含义
Oct 29 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
Jan 03 PHP
php+mysql实现无限级分类
Nov 11 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
javascript读取xml
2006/11/04 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
python排序方法实例分析
2015/04/30 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Python制作词云图代码实例
2019/09/09 Python
python实现手势识别的示例(入门)
2020/04/15 Python
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
造型师求职自荐信
2013/09/27 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
贷款担保书
2015/01/20 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
深入理解 Golang 的字符串
2022/05/04 Golang