开发自己的框架——(二)数据库工具类的封装
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高。首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让数
千家信息网最后更新 2025年02月01日开发自己的框架——(二)数据库工具类的封装
为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高。
首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让数据库实现接口中的方法,数据库使用PDO扩展访问数据。
数据库接口类
I_DAO.interface.php
数据库工具类中,对象只能通过静态方法创建一个实例(单例模式),不能通过克隆和继承创建对象,数据库的连接信息通过数组传递到方法中,工具类中有查询所有数据方法、查询一条数据方法、获得一个字段值的方法、实现增删改方法、
返回结果数量的方法等。
数据库操作工具类
DAOPDO.class.phpinitOptions($option); //初始化PDO对象 $this -> initPDO(); } //私有的克隆方法 private function __clone() { } //公共的静态方法实例化单例对象 public static function getSingleton($options=array()) { if(!self::$instance instanceof self){ //实例化 self::$instance = new self($options); } return self::$instance; } //初始化服务器的配置 private function initOptions($option) { $this -> host = isset($option['host'])?$option['host']:''; $this -> dbname = isset($option['dbname'])?$option['dbname']:''; $this -> user = isset($option['user'])?$option['user']:''; $this -> pass = isset($option['pass'])?$option['pass']:''; $this -> port = isset($option['port'])?$option['port']:''; $this -> charset = isset($option['charset'])?$option['charset']:''; } //初始化PDO对象 private function initPDO() { $dsn = "mysql:host=$this->host;dbname=$this->dbname;port=$this->port;charset=$this->charset"; $this -> pdo = new PDO($dsn,$this->user,$this->pass); } //封装pdostatement对象 public function query($sql="") { //返回pdo_statement对象 return $this->pdo -> query($sql); } //查询所有数据 public function getAll($sql='') { $pdo_statement = $this->query($sql); $this->resultRows = $pdo_statement -> rowCount(); if($pdo_statement==false){ //输出SQL语句的错误信息 $error_info = $this->pdo-> errorInfo(); $err_str = "SQL语句错误,具体信息如下:
".$error_info[2]; echo $err_str; return false; } $result = $pdo_statement -> fetchAll(PDO::FETCH_ASSOC); return $result; } //查询一条记录 public function getRow($sql='') { $pdo_statement = $this->query($sql); if($pdo_statement==false){ //输出SQL语句的错误信息 $error_info = $this->pdo-> errorInfo(); $err_str = "SQL语句错误,具体信息如下:
".$error_info[2]; echo $err_str; return false; } $result = $pdo_statement -> fetch(PDO::FETCH_ASSOC); return $result; } //获得一个字段的值 public function getOne($sql='') { $pdo_statement = $this->query($sql); if($pdo_statement==false){ //输出SQL语句的错误信息 $error_info = $this->pdo-> errorInfo(); $err_str = "SQL语句错误,具体信息如下:
".$error_info[2]; echo $err_str; return false; } //返回查询的字段的值,我们在执行sql语句之前就应该明确查询的是哪个字段,这样fetchColumn就已经知道查询的字段值 $result = $pdo_statement -> fetchColumn(); return $result; } //实现非查询的方法 public function exec($sql='') { $result = $this->pdo -> exec($sql); //===为了区分 受影响的记录数是0的情况 if($result===false){ $error_info = $this->pdo-> errorInfo(); $err_str = "SQL语句错误,具体信息如下:
".$error_info[2]; echo $err_str; return false; } return $result; } //查询语句返回的结果数量 public function resultRows() { return $this->resultRows; } //返回上次执行插入语句返回的主键值 public function lastInsertId() { return $this->pdo->lastInsertId(); } //数据转义并引号包裹 public function escapeData($data='') { return $this->pdo->quote($data); }}
数据
查询
方法
语句
信息
数据库
对象
错误
字段
封装
工具
实例
接口
结果
输出
功能
包裹
引号
数量
转义
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
dell机架式服务器哪款好
双色球密码数据库
数据库对口升学资料
哪些人不适合软件开发
数据库事务与安全管理实验收获
中北大学数据与网络安全实验室
挂号软件开发
实况国际服数据库
衢州网络安全准入控制系统价格
如何自己学数据库模块
杨浦区专业软件开发有哪些
人渣服务器之爆率10倍合集
服务器不多的手游
连接云服务器的拓扑图绘制
软件开发创业计划书财务计划
国外网络安全资讯网站
浙江 网络安全比赛
飞剪科技互联网有限公司
做游戏后端是不是就是服务器
传奇服务器如何提高个人爆率
数据库服务承诺
软件开发专业哪家教育机构比较好
内蒙古应用软件开发企业
热门数据库认证
强化网络安全观念教育
政府网络安全专业大学排名
盐城直销软件开发培训
网络安全卫士
软件开发者属于网络运营者吗
军工类软件开发