封装数据库操作类( SQL 执行检查)|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 快速学习封装数据库操作类( SQL 执行检查)

开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第一阶段封装数据库操作类( SQL 执行检查)】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/711/detail/12680


封装数据库操作类(SQL 执行检查)

 

内容介绍:

一、对 SQL 执行检查的简介

二、代码详解

三、测试

 

一、对 SQL 执行检查的简介

本课将继续完成封装,初始化的操作已经结束,下一步是针对如何去解决用户使用操作类的业务问题:

发现了基于 mysqli 的操作,所有的数据库的指令执行都是利用 mysqli _query 执行,而执行的过程中都会涉及到 SQL 可能出错的问题,因此把关于 SQL 执行部分(无论增删改查理论上任何操作都要进行数据库的操作),将它单独取出进行错误的检查以及执行(利用 mysqli _query)。

 

二、代码详解

#  SQL 执行以及错误检查

public function check($sql){

//可以是$sql,也可以将 sql 作为属性存起来(无意义),因为 sql 也是其他方法传入的或者是调用传入的

$res = mysqli_ query($this->link, $sql);

//利用 mysqli _query 执行SQL,执行结束后,$sql 是外部传入;$this->link,连接对象;执行完成之后会有结果,该结果可能是布尔[ ture (正确)或者 false(错误),如果出错即为 false],也可能是执行结果查询的结果及对象

#判定错误

if(!$res){

$this->errno = mysqli_ errno($this->1ink); //说明有错

$this->error = mysqli_ error($this->link);

return false;

// sql 从外部传入后,判定对应结果;mysqli_ errno():发现代码中检查的次数很多,给定某个参数进行判定返回false,所以可进行封装,让代码更加简化;返回信息错误,错误信息存入 sql 中,允许用户自行获取

}

return $res;

//假如有错则报错,无错返回正确结果;成功返回结果,可能是布尔 ture  (正确)或者是执行结果查询的结果及对象

}

}

 

三、测试

SQL 执行以及错误检查结束,错误的检查主要是做 SQL 执行检查,至于谁调用 check() 方法,对此并无要求。

1.代码:

#接上述代码(类外测试)

$s1 = new SqL();#使用默认数据库信息

$db =array(

'host' => ' 192.168.0.1',

‘user ' => 'admin”,

‘pass’=>’admin ' ,

‘dbname' => ' T aobao '

);

$s2 = new SqL ($db) ;#使用外部数据库信息

$s1- >connect();

$s1->charset();

$s1->check('select * from test');

echo $s1->errno,$s1->error ;

2.详解

添加代码$s1->check('select * from test'),无 test 表,观察是否报错

$s1->check:$s1下的方法 check

发现 bool(true)是连接的过程不需要了解,删除 var_ dump( $s1- >connect());中的 var_ dump(),原因是应该保证连接方法执行才可有结果

image.png

修改之后刷新,发现 1146Table‘db_2.test’ 不存在

image.png

将 $s1->check('select * from test');代码改为 $s1->check('select * from t_1') ;更新结果

发现 1146Table‘db_2 .t_1’ 表不存在

image.png

假如表存在应该是正常的,可实现

将代码 $s1->check('select * from t_1') 改为 $s1->check('select * from t_40');更新结果

结果出现表,说明得到了正确的结果

image.png

因为得到正确的结果时,页面中没有信息,所以不会出现错误信息。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
82 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
1天前
|
SQL 存储 移动开发
HTML5 Web SQL 数据库详解
Web SQL 数据库是 HTML5 中的一种本地存储技术,允许在浏览器中使用 SQL 语言操作本地数据,支持离线访问和事务处理,适用于缓存数据和小型应用。然而,其存储容量有限且仅部分现代浏览器支持,标准已不再积极维护,未来可能被 IndexedDB 和 localStorage 等技术取代。使用时需谨慎考虑兼容性和发展前景。
|
23天前
|
SQL 存储 数据管理
SQL Server数据库
SQL Server数据库
41 11
|
18天前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
30 2
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
59 0
|
2月前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
58 0
|
2月前
|
SQL 数据处理 数据库
|
2月前
|
SQL 存储 调度
|
17天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
19天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
159 11
下一篇
无影云桌面