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 相关文章推荐
一次编写,随处运行
Oct 09 PHP
php的curl实现get和post的代码
Aug 23 PHP
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
PHP内核探索之变量
Dec 22 PHP
php设计模式之单例模式代码
Jun 11 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 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实现下载文件的两种方法
2013/07/05 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
利用php生成验证码
2017/02/23 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
详解element-ui中form验证杂记
2019/03/04 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Python判断字符串与大小写转换
2015/06/08 Python
Python绘制3D图形
2018/05/03 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
python字典一键多值实例代码分享
2019/06/14 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
主办会计岗位职责
2014/03/13 职场文书
给病人的慰问信
2015/03/23 职场文书
地心历险记观后感
2015/06/15 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL