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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
php打造属于自己的MVC框架
Mar 07 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
PHP函数in_array()使用详解
Aug 20 PHP
cakephp打印sql语句的方法
Feb 13 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
PHP Directory 函数的详解
2013/03/07 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
python中验证码连通域分割的方法详解
2018/06/04 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Python创建数字列表的示例
2019/11/28 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
python 模块导入问题汇总
2021/02/01 Python
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
机械专业毕业生推荐信范文
2013/11/25 职场文书
初中美术教学反思
2014/01/29 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
篝火晚会主持词
2014/03/25 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis