开发自己的框架——(二)数据库工具类的封装
发表于:2024-10-03 作者:千家信息网编辑
千家信息网最后更新 2024年10月03日,为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高。首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让数
千家信息网最后更新 2024年10月03日开发自己的框架——(二)数据库工具类的封装
为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高。
首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让数据库实现接口中的方法,数据库使用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安全错误
数据库的锁怎样保障安全
unturned怎么搭服务器
高清瓷砖软件开发
全国微课大赛网络安全
网络安全勒索软件
火芽网络技术有限公司
济南软件开发招聘
考研有没有专门的数据库专业
浙江服务器机柜厂家虚拟主机
可视化数据库建立方法
网络安全树立正确的
网络安全答题考试多选题答案
网络安全视频百度云
四川可视化日志审计服务器
中国移动魔百盒服务器带宽
简易网页服务器url重写
web商城的软件开发文档
服务器网络设置错误
静安区智能化软件开发信息中心
鬼泣选不了服务器
mysql 数据库撤销
初识计算机网络技术
杭州索尔网络技术公司
怎么查看mysql所有数据库
软件开发安全性专业术语
网络安全素养计算机
人社社保信息系统网络安全
公众号注册服务器发送请求
三个摄像头需要服务器吗
c 把数据导入数据库中
网络安全法 持证上岗