pdo 整套类的封装,保存修改查询
<?php/****/class Db{private $host = '';private $port = '';private $user = '';private $pass = '';private $dbname = '';private $charset='';private $tbp = '';private $db = '';/*** 返回 pdo对象*/public function getDb(){return $this->db;}/*** @param $tbp 表名前辍*/public function setTbp($tbp=''){$this->tbp = $tbp;}public function __construct($host='localhost',$port='3306',$user='root',$pass='',$dbname='fzdb',$charset='utf8',$tbp='fz_'){$dsn = "mysql:host=$host;port=$port;dbname=$dbname";$opt = [1002 =>"set names $charset"];try {$this->db = new PDO ( $dsn, 'root', '', $opt );$this->host = $host;$this->port = $port;$this->user = $user;$this->pass = $pass;$this->dbname = $dbname;$this->tbp = $tbp;$this->charset = $charset;} catch ( Exception $e ) {exit ( '数据库服务器连接失败,程序终止' );}}/**** @param unknown $t 表名,不含执行时会自动加上表前辍* @param unknown $d 要插入的数据是关联数组*/public function gomsg($url='',$msg=''){echo '<script>';echo "alert('$msg');";echo "location.href='$url'";echo '</script>';}public function save($t,$d){$t = $this->tbp.$t;foreach($d as $key=>$v){$kk[] = $key;$vv[] = ':'.$key;}$kk = implode(',',$kk);$vv = implode(',',$vv);$stmt = $this->db->prepare("insert into $t($kk) values($vv)");$stmt->execute($d);$stmt->closeCursor();}public function query($t,$f='*',$w='1=1',$o='',$l='limit 10'){$t = $this->tbp.$t;$stmt = $this->db->prepare("select $f from $t where $w $o $l");$stmt->execute();$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);$stmt->closeCursor();return $rs;}public function delete($t,$w='1=1'){$t = $this->tbp.$t;$stmt = $this->db->prepare("delete from $t where $w");$stmt->execute();$stmt->closeCursor();}public function getcount($t,$w='1=1'){$t = $this->tbp.$t;$stmt = $this->db->prepare("select count(*) from $t where $w");$stmt->execute();$stmt->bindColumn(1, $c);$stmt->fetchAll(PDO::FETCH_NUM);return $c;}public function updatenum($t,$f,$w='1=1'){$t = $this->tbp.$t;$stmt = $this->db->prepare("update $t set $f where $w");$stmt->execute();$stmt->closeCursor();}public function pager($t,$currpage=1,$f='*',$pagesize=3,$w='1=1',$o='',$ty=''){$recordcount = $this->getcount($t,$w);$t = $this->tbp.$t;$stmt = $this->db->prepare("select $f from $t where $w $o limit ?,?");$pagecount = ceil($recordcount/$pagesize);$currpage = $currpage<1 ? 1 : $currpage;$currpage = $currpage>$pagecount ? $pagecount : $currpage;$start = $currpage*$pagesize - $pagesize;$stmt->bindParam(1, $start, PDO::PARAM_INT);$stmt->bindParam(2, $pagesize, PDO::PARAM_INT);$stmt->execute();$row[] = $stmt->fetchAll(PDO::FETCH_ASSOC);$first = 1;$end = 10;$pages = '<div class="page">';if($currpage>=7){$first = $currpage-5;$end = $first+$end-1;}if($currpage>1){$prev = $currpage-1;if($first>1){$pages.="<a href=?".$ty."p=1>首页</a><a href=?".$ty."p=$prev>上一页</a>";}else{$pages.="<a href=?".$ty."p=$prev>上一页</a>";}}for($i=$first;$i<=$end;$i++){if($i>$pagecount){break;}if($i==$currpage){$pages.='<a class="checked">'.$i.'</a>';continue;}$pages.="<a href=?".$ty."p=$i>$i</a>";}if($currpage<$pagecount){$next = $currpage+1;$pages.="<a href=?".$ty."p=$next>下一页</a>";}if($end<$pagecount){$pages.="<a href=?".$ty."p=$pagecount>尾页</a>";}$row[] = $pages.'</div>';$row[] = $pagesize;$row[] = $pagecount;$row[] = $recordcount;$row[] = $currpage;return $row;}public function css1(){$css = <<<css<style>.page{font-size:12px;height:30px;padding:15px 0;clear:both;overflow:hidden;text-align:center;}.page a{text-decoration:none;line-height:25px;padding:0px 10px;display:inline-block;margin-right:5px;border:solid 1px #c8c7c7;}.page a:hover,.page a.checked{text-decoration:none;border:solid 1px #0086d6;background:#0091e3;color:#fff;}.page a:visited,.page a:link{color:#333;}.page a:active{color:#3B3B3B;}</style>css;echo $css;}public function md5($p,$c='webrx'){$s1 = md5($p.$c);$s2 = sha1($p.$c);$sok = substr($s1,0,6).substr($s2,0,6);$sok .= substr($s1,12,5).substr($s2,22,5);$sok .= substr($s1,22,5).substr($s2,32,5);return $sok;}public function update($t,$d,$w='1=1'){$t = $this->tbp.$t;foreach($d as $key=>$v){$kk[] = $key.'=:'.$key;}$kk = implode(',',$kk);$stmt = $this->db->prepare("update $t set $kk where $w");$stmt->execute($d);$stmt->closeCursor();}public function __destruct(){unset($this->db);}}
pdo 整套类的封装,保存修改查询的更多相关文章
- 一个强大的封装好的pdo处理类
php5.5后就不支持mysql扩展了,也就是说这以后都不能使用msyql_conncet之类的函数了.不过没有关系,pdo比mysql有更多优势,写法也很简单,下面贴出一个来自互联网的pdo处理类. ...
- Java—类的封装、继承与多态
一.类和对象 1.类 类是数据以及对数据的一组操作的封装体. 类声明的格式: 类声明 { 成员变量的声明: 成员方法的声明及实现: } 1.1 声明类 [修饰符] class 类<泛型> ...
- Java---对象与类的封装
一.类和对象: package cn.hncu.Myclasslearn; /** * * @author hncu_chx * * Mylove amin */ /**类是一种数据类型,声明一个类就 ...
- PHP 类的封装和使用
类:相似的数据和数据操作的封装 class 成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private 成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成 ...
- 类的封装(property)
封装 封装程序的主要原因:保护隐私:而封装方法的主要原因是:隔离复杂的执行过程 property的特性 将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执 ...
- 关于PHP建立数据库访问类的封装以及操作php单例模式连接数据库封装类
建立数据库访问类的封装 <?php class DBDA { public $host = "localhost"; //服务器地址 public $ui ...
- 模块的封装之C语言类的封装
[微知识]模块的封装(一):C语言类的封装 是的,你没有看错,我们要讨论的是C语言而不是C++语言中类的封装.在展开知识点之前,我首先要 重申两点: 1.面向对象是一种思想,基本与所用的语言是无关的. ...
- 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装
微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...
- 025医疗项目-模块二:药品目录的导入导出-HSSF导入类的封装
上一篇文章提过,HSSF的用户模式会导致读取海量数据时很慢,所以我们采用的是事件驱动模式.这个模式类似于xml的sax解析.需要实现一个接口,HSSFListener接口. 原理:根据excel底层存 ...
随机推荐
- [转]PHP Session的一个警告
警告全文如下: PHP Warning: Unknown: Your script possibly relies on a session side-effect which existed unt ...
- 数据库服务器CPU持续百分之百、部分Session一直处于执行状态---等待事件为:asynch descriptor resize(Oracle Bug )
问题描述: 项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynch descriptor resize”,并且这些会话一直处于Active状态,而这些会话执行的 ...
- D3的基本设计思路
学习一项新技术,首先要搞清楚它的基本设计思路,有了这个宏观的技术架构,使用该技术起来,就会得心应手了.否则,就会不知道如何下手,即使看到人家的例子程序,可能也不知其所以然. 下面,就简单的结合自己研究 ...
- DB2 中文排序问题
本地测试库中 代码集: GBK 数据库配置发行版级别 = 0x0c00 数据库发行版级别 = 0x0c00 数据库地域 = CN 数据库代码页 = 1386 数据库代码集 = GBK 数据库国家/地区 ...
- Linux流量监控工具
http://www.vpser.net/manage/iftop.html 在类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若 ...
- Spring自定义缓存管理及配置Ehcache缓存
spring自带缓存.自建缓存管理器等都可解决项目部分性能问题.结合Ehcache后性能更优,使用也比较简单. 在进行Ehcache学习之前,最好对Spring自带的缓存管理有一个总体的认识. 这篇文 ...
- CRM 2016 子表单中N:1关系 字段要求与新建时的关系
父表单在新建子表单项时弹出的窗口和 子表单的N:1关系是有关系的.说白了就是子表单窗体上的父表单字段是不是必填项. 关系如下: 1 非必填项 点击子表单的"+"号时,会出现look ...
- 重写类的Equals以及重写Linq下的Distinct方法
当自定义一个类的时候,如果需要用到对比的功能,可以自己重写Equals方法,最整洁的方法是重写GetHashCode()方法. 但是,这个方法只适用于对象自身的对比(如if(a==b))以及字典下的C ...
- Tab切换
代码 <!DOCTYPE html> <html lang="en"><head> <meta charset="UTF-8&q ...
- EA使用
类逻辑图 关系1:泛化(继承),Driver和Northeastermer继承了Person类 关系2:实现,Northeastermer实现了LivingLeiFeng类 关系3: 关联,两个对象 ...