PHP访问MYSQL数据库封装类(附函数说明)


Posted in PHP onDecember 04, 2010
<?php 
/* 
MYSQL 数据库访问封装类 
MYSQL 数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象 
访问方式,本封装类以mysql_封装 
数据访问的一般流程: 
1,连接数据库 mysql_connect or mysql_pconnect 
2,选择数据库 mysql_select_db 
3,执行SQL查询 mysql_query 
4,处理返回的数据 mysql_fetch_array mysql_num_rows mysql_fetch_assoc mysql_fetch_row etc 
*/ 
class db_mysql 
{ 
var $querynum = 0 ; //当前页面进程查询数据库的次数 
var $dblink ; //数据库连接资源 
//链接数据库 
function connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0 , $halt=true) 
{ 
$func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect' ; 
$this->dblink = @$func($dbhost,$dbuser,$dbpw) ; 
if ($halt && !$this->dblink) 
{ 
$this->halt("无法链接数据库!"); 
} 
//设置查询字符集 
mysql_query("SET character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink) ; 
//选择数据库 
$dbname && @mysql_select_db($dbname,$this->dblink) ; 
} 
//选择数据库 
function select_db($dbname) 
{ 
return mysql_select_db($dbname,$this->dblink); 
} 
//执行SQL查询 
function query($sql) 
{ 
$this->querynum++ ; 
return mysql_query($sql,$this->dblink) ; 
} 
//返回最近一次与连接句柄关联的INSERT,UPDATE 或DELETE 查询所影响的记录行数 
function affected_rows() 
{ 
return mysql_affected_rows($this->dblink) ; 
} 
//取得结果集中行的数目,只对select查询的结果集有效 
function num_rows($result) 
{ 
return mysql_num_rows($result) ; 
} 
//获得单格的查询结果 
function result($result,$row=0) 
{ 
return mysql_result($result,$row) ; 
} 
//取得上一步 INSERT 操作产生的 ID,只对表有AUTO_INCREMENT ID的操作有效 
function insert_id() 
{ 
return ($id = mysql_insert_id($this->dblink)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); 
} 
//从结果集提取当前行,以数字为key表示的关联数组形式返回 
function fetch_row($result) 
{ 
return mysql_fetch_row($result) ; 
} 
//从结果集提取当前行,以字段名为key表示的关联数组形式返回 
function fetch_assoc($result) 
{ 
return mysql_fetch_assoc($result); 
} 
//从结果集提取当前行,以字段名和数字为key表示的关联数组形式返回 
function fetch_array($result) 
{ 
return mysql_fetch_array($result); 
} 
//关闭链接 
function close() 
{ 
return mysql_close($this->dblink) ; 
} 
//输出简单的错误html提示信息并终止程序 
function halt($msg) 
{ 
$message = "<html>\n<head>\n" ; 
$message .= "<meta content='text/html;charset=gb2312'>\n" ; 
$message .= "</head>\n" ; 
$message .= "<body>\n" ; 
$message .= "数据库出错:".htmlspecialchars($msg)."\n" ; 
$message .= "</body>\n" ; 
$message .= "</html>" ; 
echo $message ; 
exit ; 
} 
} 
?>
PHP 相关文章推荐
PHP中include()与require()的区别说明
Mar 10 PHP
PHP输入输出流学习笔记
May 12 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP对象克隆clone用法示例
Sep 28 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 #PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 #PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 #PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 #PHP
PHP分页函数代码(简单实用型)
Dec 02 #PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 #PHP
php小偷相关截取函数备忘
Nov 28 #PHP
You might like
PHP服务器页面间跳转实现方法
2012/08/02 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
python字符串的方法与操作大全
2018/01/30 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python实现批量修改文件名
2020/03/23 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
mysql 生成连续日期及变量赋值
2022/03/20 MySQL