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 采集书并合成txt格式的实现代码
Mar 01 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
php实现监听事件
Nov 06 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 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实时显示输出
2008/10/02 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
php for 循环使用的简单实例
2016/06/02 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
Python中scatter函数参数及用法详解
2017/11/08 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python3调用R的示例代码
2018/02/23 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python序列化与数据持久化实例详解
2019/12/20 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
开水果连锁店创业计划书
2013/12/29 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
违纪开除通知书
2015/04/25 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
话题作文之自信作文
2019/11/15 职场文书