(thinkphp5教程)(thinkphp5教程下载)

当你需要使用多个数据库连接的时候,就需要使用connect方法动态切换到另外一个数据库连接,假设存在另外一个数据库test,并且复制data过去更名为test,然后测试下面的示例:

(thinkphp5教程)(thinkphp5教程下载)

页面Trace的显示信息可以看出来使用了两次数据库连接和执行了三次查询,并且数据库连接切换并没有影响默认的查询(第三个查询还是使用的默认数据库配置连接,test数据库中并不存在data表,如果连接的还是第二个数据库连接的话肯定会报错)。

(thinkphp5教程)(thinkphp5教程下载)

有时候,我们只需要设置一些基本的数据库配置参数,可以简化成一个字符串格式定义(该格式为ThinkPHP使用规范,而不是PDO连接规范,不要和DSN混淆起来):

Db::connect('mysql://root@127.0.0.1/demo#utf8') ->query('select * from data where id = 1');

字符串格式的连接信息规范格式如下:数据库类型://用户名[:用户密码]@数据库服务器地址[:端口]/数据库名[?参数1=值&参数2=值]#数据库编码

Db类的connect方法会返回一个数据库连接对象实例,相同的连接参数返回的是同一个对象实例,除非你强制重新实例化,例如:

(thinkphp5教程)(thinkphp5教程下载)

这样,每次调用都会重新实例化数据库的连接类。为了便于统一管理,你可以把数据库配置参数纳入配置文件,例如在应用配置文件中添加:

(thinkphp5教程)(thinkphp5教程下载)

或者使用字符串方式定义'db_config' => 'mysql://root@127.0.0.1/demo',

上面的db_config配置参数不是在数据库配置文件中定义,而是在应用配置文件或者模块配置文件中定义。

然后,使用下面的方式来动态连接获取切换连接

  1. Db::connect('db_config')

  2. ->query('select * from data where id=:id', ['id'=>3]);

当connect方法传入的连接参数是字符串并且不包含/等特殊符号的话,表示使用的是预定义数据库配置参数。

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者行家汇所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(thinkphp5教程)(thinkphp5教程下载)
本文链接:https://www.51qsb.cn/article/m8hjq.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-01-06
下一篇2023-01-06

你可能还想知道

发表回复

登录后才能评论