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 Ajax实现页面无刷新发表评论
Jan 02 PHP
php生成文件
Jan 15 PHP
php adodb连接带密码access数据库实例,测试成功
May 14 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
Django数据统计功能count()的使用
2020/11/30 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
迟到检讨书5000字
2014/01/31 职场文书
招商专员岗位职责
2014/02/08 职场文书
责任书格式范文
2014/07/28 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
群众路线专项整治方案
2014/10/27 职场文书
2014年接待工作总结
2014/11/26 职场文书
品质保证书格式
2015/02/28 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
升学宴学生致辞
2015/07/27 职场文书
Mysql文件存储图文详解
2021/06/01 MySQL
用python修改excel表某一列内容的操作方法
2021/06/11 Python
Python 中的 copy()和deepcopy()
2021/11/07 Python