php下mysql数据库操作类(改自discuz)


Posted in PHP onJuly 03, 2010
<?php /* -------------------------------- 
System:PT book - PT小说小偷 
Code: 杰少Pakey 
----------------------------------- */ 
$pt_mysql = new dbQuery; 
/** 
* mysql查询类 
* 
*/ 
class dbQuery { 
/** 
* 查询总次数 
* 
* @var int 
*/ 
var $querynum = 0; 
/** 
* 连接句柄 
* 
* @var object 
*/ 
var $link; 
/** 
* 构造函数 
* 
* @param string $dbhost 主机名 
* @param string $dbuser 用户 
* @param string $dbpw 密码 
* @param string $dbname 数据库名 
* @param int $pconnect 是否持续连接 
*/ 
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) { 
if($pconnect) { 
if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) { 
$this->halt('Can not connect to MySQL server'); 
} 
} else { 
if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) { 
$this->halt('Can not connect to MySQL server'); 
} 
} 
if($this->version() > '4.1') { 
global $dbcharset; 
if($dbcharset) { 
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link); 
mysql_query("set names 'GBK'"); 
} 
if($this->version() > '5.0.1') { 
mysql_query("SET sql_mode=''", $this->link); 
mysql_query("set names 'GBK'"); 
} 
} 
if($dbname) { 
mysql_select_db($dbname, $this->link); 
} 
} 
/** 
* 选择数据库 
* 
* @param string $dbname 
* @return 
*/ 
function select_db($dbname) { 
return mysql_select_db($dbname, $this->link); 
} 
/** 
* 取出结果集中一条记录 
* 
* @param object $query 
* @param int $result_type 
* @return array 
*/ 
function fetch_array($query, $result_type = MYSQL_ASSOC) { 
return mysql_fetch_array($query, $result_type); 
} 
/** 
* 查询SQL 
* 
* @param string $sql 
* @param string $type 
* @return object 
*/ 
function query($sql, $type = '') { 
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 
'mysql_unbuffered_query' : 'mysql_query'; 
if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { 
$this->halt('MySQL Query Error', $sql); 
} 
$this->querynum++; 
return $query; 
} 
/** 
* 取影响条数 
* 
* @return int 
*/ 
function affected_rows() { 
return mysql_affected_rows($this->link); 
} 
/** 
* 返回错误信息 
* 
* @return array 
*/ 
function error() { 
return (($this->link) ? mysql_error($this->link) : mysql_error()); 
} 
/** 
* 返回错误代码 
* 
* @return int 
*/ 
function errno() { 
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); 
} 
/** 
* 返回查询结果 
* 
* @param object $query 
* @param string $row 
* @return mixed 
*/ 
function result($query, $row) { 
$query = @mysql_result($query, $row); 
return $query; 
} 
/** 
* 结果条数 
* 
* @param object $query 
* @return int 
*/ 
function num_rows($query) { 
$query = mysql_num_rows($query); 
return $query; 
} 
/** 
* 取字段总数 
* 
* @param object $query 
* @return int 
*/ 
function num_fields($query) { 
return mysql_num_fields($query); 
} 
/** 
* 释放结果集 
* 
* @param object $query 
* @return bool 
*/ 
function free_result($query) { 
return mysql_free_result($query); 
} 
/** 
* 返回自增ID 
* 
* @return int 
*/ 
function insert_id() { 
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); 
} 
/** 
* 从结果集中取得一行作为枚举数组 
* 
* @param object $query 
* @return array 
*/ 
function fetch_row($query) { 
$query = mysql_fetch_row($query); 
return $query; 
} 
/** 
* 从结果集中取得列信息并作为对象返回 
* 
* @param object $query 
* @return object 
*/ 
function fetch_fields($query) { 
return mysql_fetch_field($query); 
} 
/** 
* 返回mysql版本 
* 
* @return string 
*/ 
function version() { 
return mysql_get_server_info($this->link); 
} 
/** 
* 关闭连接 
* 
* @return bool 
*/ 
function close() { 
return mysql_close($this->link); 
} 
/** 
* 输出错误信息 
* 
* @param string $message 
* @param string $sql 
*/ 
function halt($message = '', $sql = '') { 
echo $message . ' ' . $sql; 
exit; 
} 
} 
?>
PHP 相关文章推荐
帖几个PHP的无限分类实现想法~
Jan 02 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
php 缩略图实现函数代码
Jun 23 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP的password_hash()使用实例
Mar 17 PHP
php上传文件常见问题总结
Feb 03 PHP
php实现的操作excel类详解
Jan 15 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 #PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 #PHP
php防盗链的常用方法小结
Jul 02 #PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 #PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 #PHP
php操作excel文件 基于phpexcel
Jul 02 #PHP
PHP 多维数组排序(usort,uasort)
Jun 30 #PHP
You might like
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
php获取参数的几种方法总结
2014/02/18 PHP
浅谈php命令行用法
2015/02/04 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
深入理解Python中变量赋值的问题
2017/01/12 Python
Python paramiko模块的使用示例
2018/04/11 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
深入理解Python 多线程
2020/06/16 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
python lambda的使用详解
2021/02/26 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
策划创业计划书
2014/02/06 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
宣传口号大全
2014/06/16 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
学生个人总结范文
2015/02/15 职场文书
小学生暑假生活总结
2015/07/13 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis