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部分常见问题总结
Mar 27 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
php分页函数完整实例代码
Sep 22 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
PHP积分兑换接口实例
Feb 09 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
php中__toString()方法用法示例
Dec 07 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 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 上传文件的方法(类)
2009/07/30 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
浅析Vue自定义组件的v-model
2017/11/26 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python sort、sorted高级排序技巧
2014/11/21 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
业绩倒数第一的检讨书
2014/09/24 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
调解协议书范本
2016/03/21 职场文书
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL