封装数据库操作类( 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

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
29天前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
212 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
17天前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
84 6
|
28天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
28天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
162 8
|
2月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
270 8
|
2月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
195 5
|
1月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
1月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
1月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。