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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
你应该知道PHP浮点数知识
May 13 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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自定义函数实现代码
2011/12/30 PHP
php模板函数 正则实现代码
2012/10/15 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
php读取本地json文件的实例
2018/03/07 PHP
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python变量作用范围实例分析
2015/07/07 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
python实现井字棋小游戏
2020/03/04 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Python正则表达式如何匹配中文
2020/05/27 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
工作说明书格式
2014/07/29 职场文书
七一讲话心得体会
2014/09/05 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
公司保密管理制度
2015/08/04 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
初中生物教学反思
2016/02/20 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
古诗之感恩老师
2019/10/24 职场文书