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中GET变量的使用
Oct 09 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP文件缓存类实现代码
Oct 26 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
php的debug相关函数用法示例
Jul 11 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP _construct()函数讲解
2019/02/03 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
python 字段拆分详解
2019/12/17 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
Puma印度官网:德国运动品牌
2019/10/06 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
承诺书范本大全
2015/05/04 职场文书
新闻通讯稿范文
2015/07/22 职场文书
python实现层次聚类的方法
2021/11/01 Python