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 遍历XP文件夹下所有文件
Nov 27 PHP
php echo 输出字符串函数详解
May 13 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 PHP
设定php简写功能的方法
Nov 28 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 数字左侧自动补0
2008/03/31 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
js实现简单的倒计时
2021/01/28 Javascript
详细介绍Python函数中的默认参数
2015/03/30 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
selenium如何定位span元素的实现
2021/01/13 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
班组长的岗位职责
2013/12/09 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
廉政承诺书2015
2015/04/28 职场文书
护士旷工检讨书
2015/08/15 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python