开发自己的框架——(二)数据库工具类的封装
发表于: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安全错误
数据库的锁怎样保障安全
南京物联网软件开发
优八互联网科技有限公司
山西gpu服务器租用费用
华为云s3服务器性能
交接无线网显示服务器无响应
运营商网络技术
数据库系统工程师考试题型
揭阳市网络安全会议
excel数据插去数据库
淘宝数据库删除记录
打车软件开发背景
广东通用软件开发询问报价
网络安全手抄报简单漂亮初中
阿里巴巴服务器运行异常
网络安全属于哪个专业大类
江西优质软件开发
网络安全技术与实训第四版微课版
小米数据库
数据库用什么语言开发
俄罗斯网络安全规定
网络安全关爱生命广播稿
英文网络技术
网络安全口诀 网警
怎么提高数据库查询速率
ef获取前两个数据库
大学网络安全教材用哪本
济南鑫郸网络技术有限公司
河南独角兽网络技术有限公司
推进公安网络安全
小型企业服务器维修公司