扫码关注官方订阅号
我的数据库类型是mysql类,我看源码后发现最终调用的是thinkphp核心目录下的DB/Driver,中的mysql类的构造函数,这个构造函数只是读取了配置文件,并没有链接数据库,我想知道它是在哪里链接的数据库
走同样的路,发现不同的人生
并不清楚你说的是哪个版本,暂且当成3.2版本。首先,如果你还没有比较熟悉面向对象,先把OOP过一遍再看框架的东西如果已经熟悉了OOP,再弄清楚PDO最后要弄清楚M方法到数据库的调用栈你说 “最终调用的是thinkphp核心目录下的DB/Driver”,可以说对,也可以说不对。因为实际上Driver是作为一个具体数据库驱动的基类。调用栈1、调用M方法,实际上是实例化一个Model对象2、一个Model对象至少有一个数据库链接句柄,这时候通过Db数据库中间层获取到一个具体的数据库驱动实例。这是一个什么数据库取决于配置(假设是mysql)。中间层的设计就是你不需要管底层是什么样的数据库,直接获取就行了。(到这里为止我知道你都是清楚的,但是其实这里并没有实际连接数据库)3、这个时候再返回Model类中,所有的涉及到的数据库操作CURD,基本上都是通过$this->db来完成的。$this->db就是2中获取到的实例。4、这个时候到Driver/Mysql.class.php,和Driver.class.php中看一下。在调用相应的方法的时候,都有调用同一个方法initConnect, 这里开始才是真正的连接数据库。
这是我学习TP时自己的理解。如果有说错的望指点。大家一起交流。希望对你有帮助!
读取config文件里面的参数啊,你自己用那台mysql服务器写好密码之类的,然后用时候就自动加载配置了啊
这么简单的问题 直接看官方文档啊
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
并不清楚你说的是哪个版本,暂且当成3.2版本。
首先,如果你还没有比较熟悉面向对象,先把OOP过一遍再看框架的东西
如果已经熟悉了OOP,再弄清楚PDO
最后要弄清楚M方法到数据库的调用栈
你说 “最终调用的是thinkphp核心目录下的DB/Driver”,可以说对,也可以说不对。因为实际上Driver是作为一个具体数据库驱动的基类。
调用栈
1、调用M方法,实际上是实例化一个Model对象
2、一个Model对象至少有一个数据库链接句柄,这时候通过Db数据库中间层获取到一个具体的数据库驱动实例。这是一个什么数据库取决于配置(假设是mysql)。中间层的设计就是你不需要管底层是什么样的数据库,直接获取就行了。
(到这里为止我知道你都是清楚的,但是其实这里并没有实际连接数据库)
3、这个时候再返回Model类中,所有的涉及到的数据库操作CURD,基本上都是通过$this->db来完成的。$this->db就是2中获取到的实例。
4、这个时候到Driver/Mysql.class.php,和Driver.class.php中看一下。在调用相应的方法的时候,都有调用同一个方法initConnect, 这里开始才是真正的连接数据库。
这是我学习TP时自己的理解。如果有说错的望指点。大家一起交流。
希望对你有帮助!
读取config文件里面的参数啊,你自己用那台mysql服务器写好密码之类的,然后用时候就自动加载配置了啊
这么简单的问题 直接看官方文档啊