ThinkPHP数据库查询之Db类深度解析(1)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: ThinkPHP数据库查询之Db类深度解析

前言

在日常开发过程中模型的使用是非常之多的,但是在开发过程只知道如何使用,并不知道内在是如何实现的,模型是不管接口还是后台都会使用到的东西。


关于视图在前后台分离的大趋势下,框架存在视图大多数还是针对于后台开发的使用。


本文也是对框架解读快到最后阶段了,接下来咔咔将带领大家一起学习关于在框架中Db类的奥秘。


下图为咔咔提供的脑图可以根据这个脑图进行阅读文章。


image.png


一、Db操作类和其它类对应关系解刨

在学习模型之前一定要知道的就是DB这个类,这个类也是对数据库的操作。


在框架中存在这样一个配置文件,在这个配置文件里边会存在关于数据库配置的一系列信息。


在接下来的过程中咔咔也会简单的创建一个数据库来做演示。


image.png


同样在框架的核心层存在俩个类,分别为Db类和Model类,这俩个类就是接下来的解析对象。


image.png


在解析Db操作类和其它类对应关系解刨之前,我们先创建一个数据库作为演示使用。


image.png


首先先来看一下Db类的信息。


image.png


通过上图我们可以看到关于Db类的一部分信息,就是使用Db类的一些查询方法。


但是来到Db类的最后可以看到一个熟悉的方法__callStatic。


image.png


这个方法在一直读咔咔文章的读者应该已经很是熟悉了,这个方法在门面源码解析那一节中进行过深入的了解。


对于这个方法只需要记住的是在调用没有声明的静态方法时会进行调用。


至于call_user_func_array这个函数的使用可以理解为,这个方法是内置函数,可以直接调用函数运行,也就是可以直接运行方法。


image.png


在通过刚刚的查看Db类的注释信息时可以看到Db类是使用着Connection这个类,也就是连接数据库类。


image.png


进入到这个类里边简单的看一下构造函数即可,至于是怎么一个运行顺序会在下文进行讲解。


image.png


在框架中操作控制器有俩大场景,第一中为Db类操作,第二种就是Model操作。


其中Connection·为连接器,Query为查询器,Builder为sql生成器,exception为异常类。


知道了以上的几个信息,在接下来的理解过程中会有一定的帮助,在下一节中将会对Db类库场景分析。



相关文章
|
7天前
|
数据可视化 数据挖掘 BI
团队管理者必读:高效看板类协同软件的功能解析
在现代职场中,团队协作的效率直接影响项目成败。看板类协同软件通过可视化界面,帮助团队清晰规划任务、追踪进度,提高协作效率。本文介绍看板类软件的优势,并推荐五款优质工具:板栗看板、Trello、Monday.com、ClickUp 和 Asana,助力团队实现高效管理。
29 2
|
26天前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
53 3
|
1月前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
109 57
|
7天前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
|
26天前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
23天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
26天前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
88 15
|
7天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。

推荐镜像

更多