thinkphp5如何优雅的配置多个数据库?

最近在用tp5写项目,有一个业务上的需求,需要连接两个数据库。这就需要在tp5中配置两个数据库了。

该怎么配置多个数据库呢?

查看开发手册 。这当然是一句废话,快速开发的第一要素就是查看手册。手册有提供了丰富多数据配置的方法,参考链接在文章结尾处,不多此一举雷述了。

但手册的方法会发现多个数据配置方式过于混乱,显得不够优雅。有一个专门配置数据库的文件database.php文件,但这个文件只能配置一个数据库信息,其他的数据库却要写在config.php这个应用配置文件上,这就有点乱了,并且config.php操作更改的频率是比较大,而数据库配置之后一般都不会改动,直接将数据库信息配置在config.php上不是一个明智之举。

那么该怎么配置,会显得好管理些呢?

重新起一个数据库配置文件,命名database2.php,然后再config.php读这个文件。这样数据库配置信息就不用直接塞到config.php中,对数据配置信息相对独立,避免对数据库信息误操作。

看项目配置截图:

thinkphp5如何优雅的配置多个数据库?_第1张图片

比起直接在一堆数据库配置写到config.php是不是优雅很多了,逻辑上也清晰很多。

举一反三

从上述方法我们完全可以根据逻辑或者业务的需求来自定义配置文件,从而实现对配置文件有一个更好管理。

【参考】thinkphp多数据库的配置:https://www.kancloud.cn/manual/thinkphp5/118059;

 


==================== SQLServer多库切换(这个是在博客上看到的,亲试有用,分享给大家) ===========================

1、首先要连接上你的SQLServer;

2、将你配置好的database.php 文件复制一份,命名为 database2.php,并写入第二个数据库的配置;

3、在你的config.php文件中先引入 database2.php 文件(代码: $db_con2 = require_once('database2.php'); ),并在最后加上 'db_con2' => $db_con2, 

4、控制器里面就可以使用了
如:
$db = Db::connect('db_con2');
$db->query('select * from user');

(PS :附件里面是PHP的扩展,n2里面是php5的,n1里面是php7的,大家根据需要选择)
+++++++++++++++++ the end ++++++++++++++++++++

你可能感兴趣的:(think,php)