封装 PDO(读操作+测试)|学习笔记

简介: 快速学习封装 PDO(读操作+测试)

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第三阶段封装 PDO(读操作+测试)】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/713/detail/12747


封装 PDO(读操作+测试)


1、增加读方法:对外调用

#读方法:按条件进行单行或者多行数据返回

public function my_query(Ssql,Sonly true){

try{

Sstmt Sthis->pdo->query($sql);

#设置查询模式

Sstmt->setFetchMode(Sthis->fetch_mode);

}catch(PDOException Se){

return Sthis->my_exception(Se);

}

#数据解析

if(Sonly)

return $stmt->fetch(),

else

return $stmt->fetchAl1(;

}

进行读操作那读的操作,应该是有什么?独一条和读多条之分。怎么实现看具体的业务需求。如果想变成两个方法,一个是获取一条,一个是获取多条,就写两个方法。如果我想要做成一个方法,就要通过参数来进行控制。

此时通过参数做一个控制,给我一个SQL指令,将进行判定。默认获取一条,接下来第一件事情是执行SQL。调用pdo执行,而执行的过程是有可能出错的,所以try起来,try起来就是抓错误而抓到了错误之后。如果没有错误继续的话,要考虑我们数据出的模式要正常,用户设定需要根据用户要求模式来写,所以我们要给它增加设置模式。这也是一种错误的检查需要。第一,如果得到的不是对象查询语句就有问题,是返回false,false走到此处不可以调用对象方法。所以他必须要是一个pdo statement类的对象才能去调用这个方法,而设置的过程中,有可能设置的模式跟当前的模式根本就不允许。那也有可能出错,所以把这两部分都给他抓起来,抓起来有问题就会去处理。没有问题,说明这个对象是正常存在的,就可以判定去获取方式,因为这段代码没有必要再进行异常捕捉,即因为不会出错。应该放到外面来,不要在里面去实现,这就是读方法。

对应的my exception my exec存在,对应的共有私有属性存在,类的控制存在整个分装完毕。首先看语法是否存在问题

image.png不存在问题。

2.查询

$m=new MyPDO();

sres =$m->my_query('select from t_40',false);

var_dump($res);

测试数据,查数据my_query(拿结果看是否是需要的)先看运行,运行没问题查看结果是否正确,

image.png

刷新得到数据

image.png如果查看多条加入flase,刷新

sres =$m->my_query('select from t_40',false);

image.png3.查看得到的内容

$m new MyPDO()

$res=$m->my_exec('delete from t_28 limit 2');

var_dump($res);

删除2行

image.png说明操作成功

至于ID只需要做新增操作尝试就可以,新增操作的my exec判定是没有问题的。另外一种方法也肯定是没有问题的.测试完成,测试代码全部删除,此时已经完成。

有一点细节需要注意:类是在别的地方使用的,别的地方使用的时候把文件引入进去,使用的时候注意命名空间,必须要指定空间,或者说从空间里面把my pdo引入过去才能使用。

image.png关于pdo的二次封装就做完了,如果还有一些其他的业务,比如事务处理,应该再封装事务操作的方法,如果要做预处理,同样可以去封装。总而言之一句话,要把它变得越复杂,就多封装一些功能,如果只是为了解决基本的增删改查,到此就够了。这就是pdo类的二次封装。

相关文章
|
5月前
|
消息中间件 Java 数据库
【消息队列开发】 实现 VirtualHostTests 类——测试虚拟主机操作
【消息队列开发】 实现 VirtualHostTests 类——测试虚拟主机操作
|
6月前
|
算法 测试技术 C++
【矩阵快速幂】封装类及测试用例及样例
【矩阵快速幂】封装类及测试用例及样例
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
17天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
73 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
17天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
17 2
|
17天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
37 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
4月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
97 2
|
4月前
|
SQL DataWorks 数据可视化
DataWorks操作报错合集之测试OSS数据源的连通性时,出现503 Service Temporarily Unavailable的错误,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
JSON Java 测试技术
SpringBoot实用开发篇第二章(测试操作)
SpringBoot实用开发篇第二章(测试操作)