一个基于PDO的数据库操作类


Posted in PHP onMarch 24, 2011

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白。
既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见。

<?php 
/* 
作者:胡睿 
日期:2011/03/19 
电邮:hooray0905@foxmail.com 
20110319 
常用数据库操作,如:增删改查,获取单条记录、多条记录,返回最新一条插入记录id,返回操作记录行数等 
*/ 
/* 
参数说明 
int $debug 是否开启调试,开启则输出sql语句 
int $getcount 是否记数,返回值为行数 
int $getrow 是否返回值单条记录 
string $table 数据库表 
string $fields 需要查询的数据库字段,允许为空,默认为查找全部 
string $sqlwhere 查询条件,允许为空 
string $orderby 排序,允许为空,默认为id倒序 
*/ 
function hrSelect($debug, $getcount, $getrow, $table, $fields="*", $sqlwhere="", $orderby="id desc"){ 
global $pdo; 
if($debug){ 
if($getcount){ 
echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby"; 
}else{ 
echo "select $fields from $table where 1=1 $sqlwhere order by $orderby"; 
} 
exit; 
}else{ 
if($getcount){ 
$rs = $pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby"); 
return $rs->fetchColumn(); 
}elseif($getrow){ 
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby"); 
return $rs->fetch(); 
}else{ 
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby"); 
return $rs->fetchAll(); 
} 
} 
} 
/* 
参数说明 
int $debug 是否开启调试,开启则输出sql语句 
int $execrow 是否开启返回执行条目数 
int $lastinsertid 是否开启返回最后一条插入记录id 
string $table 数据库表 
string $fields 需要插入数据库的字段 
string $values 需要插入数据库的信息,必须与$fields一一对应 
*/ 
function hrInsert($debug, $execrow, $lastinsertid, $table, $fields, $values){ 
global $pdo; 
if($debug){ 
echo "insert into $table ($fields) values ($values)"; 
exit; 
}elseif($execrow){ 
return $pdo->exec("insert into $table ($fields) values ($values)"); 
}elseif($lastinsertid){ 
return $pdo->lastInsertId("insert into $table ($fields) values ($values)"); 
}else{ 
$pdo->query("insert into $table ($fields) values ($values)"); 
} 
} 
/* 
参数说明 
int $debug 是否开启调试,开启则输出sql语句 
int $execrow 是否开启执行并返回条目数 
string $table 数据库表 
string $set 需要更新的字段及内容,格式:a='abc',b=2,c='2010-10-10 10:10:10' 
string $sqlwhere 修改条件,允许为空 
*/ 
function hrUpdate($debug, $execrow, $table, $set, $sqlwhere=""){ 
global $pdo; 
if($debug){ 
echo "update $table set $set where 1=1 $sqlwhere"; 
exit; 
}elseif($execrow){ 
return $pdo->exec("update $table set $set where 1=1 $sqlwhere"); 
}else{ 
$pdo->query("update $table set $set where 1=1 $sqlwhere"); 
} 
} 
/* 
参数说明 
int $debug 是否开启调试,开启则输出sql语句 
int $execrow 是否开启返回执行条目数 
string $table 数据库表 
string $sqlwhere 删除条件,允许为空 
*/ 
function hrDelete($debug, $execrow, $table, $sqlwhere=""){ 
global $pdo; 
if($debug){ 
echo "delete from $table where 1=1 $sqlwhere"; 
exit; 
}elseif($execrow){ 
return $pdo->exec("delete from $table where 1=1 $sqlwhere"); 
}else{ 
$pdo->query("delete from $table where 1=1 $sqlwhere"); 
} 
} 
?>

参数的注释都写的很清楚,如果有人需要,不清楚使用方法可以直接问我。
PHP 相关文章推荐
MySQL相关说明
Jan 15 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
PHP里的中文变量说明
Jul 23 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 #PHP
常见的PHP五种设计模式小结
Mar 23 #PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 #PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 #PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 #PHP
php中取得URL的根域名的代码
Mar 23 #PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 #PHP
You might like
smarty section简介与用法分析
2008/10/03 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
PHP闭包函数详解
2016/02/13 PHP
javascript demo 基本技巧
2009/12/18 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
2016/12/07 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
Python脚本实现网卡流量监控
2015/02/14 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
python取代netcat过程分析
2018/02/10 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
python实现小世界网络生成
2019/11/21 Python
python集合删除多种方法详解
2020/02/10 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
民事赔偿协议书
2014/11/02 职场文书
信息技术课教学反思
2016/02/23 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python