1、ThinkPHP5的数据访问层是基于PHP内置的PDO对象实现
2、数据库入口类Db 主要就是一个connect方法
理论上来说,框架并不依赖Db类,该类的存在只是为了简化数据库抽象层的操作而提供的一个工厂类
所有的数据库操作都是经过Db类调用,并且Db类是一个静态类,但Db类自身只有一个公共方法connect
3、连接器类Connection 连接类的基类是think\db\Connection
4、数据库连接都是惰性的,只有最终执行SQL的时候才会进行连接。
5、查询器类Query 数据访问层核心只有一个唯一的查询类:think\db\Query
所有的数据库查询都使用了PDO的预处理和参数绑定机制
虽然我们始终使用Db类操作数据库,而实际上大部分方法都是由查询器类提供的方法
6、生成器类Builder 生成类一般不需要自己调用,而是由查询类自动调用的
7、数据库的调试模式和应用的调试模式是两个不同的概念。
8、Db类的方法都是静态调用(不需要去实例化think\Db类)
9、一般来说并不建议在控制器的操作方法中直接操作数据库Db类
10、对数据表的CURD操作,除了select和存储过程调用使用query方法之外,其它的操作都使用execute方法
11、数据访问层支持分布式数据库,包括读写分离,要启用分布式数据库,需要开启数据库配置文件中的deploy参数
12、事务的支持由连接器类来完成,但查询器类中也对事务进行了封装调用,mysql需要使用InnoDB引擎。
13、事务模型、Db类都可以使用,使用方法一样。

更多相关文章

  1. php连接mysql的三种方法
  2. php扫马、内网查mysql数据库账号密码(内网webshell渗透)
  3. PHP中使用cURL实现Get和Post请求的方法
  4. Wordpress查询另一个wordpress数据库for循环
  5. 怎么知道php代码运行时调用了那个类、那个方法呢?
  6. php 从指定数字中获取随机组合的方法
  7. php执行shell不阻塞方法
  8. 确定脚本所在的服务器以及PHP中的配置的最佳方法是什么?
  9. 数据库分卷备份 thinkphp3.2版

随机推荐

  1. Linux下的mysql下载及安装
  2. utf8_unicode_ci、utf8_general_ci区别
  3. MySQL-数据库安装及基本SQL语句
  4. 已开启GTID的情况下的binlog复制切换到GT
  5. 在代码点火器中从mysql迁移到postgresql
  6. MySql 修改列的注释信息的方法
  7. MySQL客户端输出窗口显示中文乱码问题解
  8. 通过php mysql更新表
  9. MySQL(Navicat)运行.sql文件时报错:[Err]
  10. 数据库中的结果分页如何工作?