ThinkPHP6连接多个数据库方法

应用配置目录下面的database.php中的数据库参数:

可以在数据库配置文件中定义多个连接信息

return [
    // 默认使用的数据库连接配置
    'default'         => 'mysql',
    // 自定义时间查询规则
    'time_query_rule' => [],
    // 自动写入时间戳字段
    'auto_timestamp'  => true,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 数据库连接配置信息
    'connections'     => [
        'mysql'  => [
            // 数据库类型
            'type'            => 'mysql',
            // 服务器地址
            'hostname'        => '127.0.0.1',
            // 数据库名
            'database'        => 'test',
            // 用户名
            'username'        => 'root',
            // 密码
            'password'        => '123456',
            // 端口
            'hostport'        => '3306',
            // 数据库连接参数
            'params'          => [],
            // 数据库编码默认采用 utf8
            'charset'         => 'utf8mb4',
            // 数据库表前缀
            'prefix'          => '',
            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
            'deploy'          => 0,
            // 数据库读写是否分离 主从式有效
            'rw_separate'     => false,
            // 读写分离后 主服务器数量
            'master_num'      => 1,
            // 指定从服务器序号
            'slave_no'        => '',
            // 检查字段是否存在
            'fields_strict'   => true,
            // 是否需要断线重连
            'break_reconnect' => false,
            // 监听SQL执行日志
            'trigger_sql'     => true,
            // 开启字段类型缓存
            'fields_cache'    => isOnline(),
        ],
        'sqlite' => [
            'charset'     => 'utf8',
            // 数据库类型
            'type'        => 'sqlite',
            // 数据库文件
            'database'    => syspath('database/sqlite.db'),
            // 监听执行日志
            'trigger_sql' => true,
            // 其他参数字段
            'deploy'      => 0,
            'prefix'      => '',
            'hostname'    => '',
            'hostport'    => '',
            'username'    => '',
            'password'    => '',
        ],
        /**
         * 配置第二个数据库
         */
        'demo' => [
            
            // 数据库类型
            'type'       => 'mysql',
            // 服务器地址
            'hostname'   => '127.0.0.1',
            // 数据库名
            'database'        => 'demo',
            // 用户名
            'username'        => 'demo',
            // 密码
            'password'        => '123456',
            // 端口
            'hostport'        => '3306',
            // 数据库连接参数
            'params'     => [],
            // 数据库编码默认采用utf8
            'charset'    => 'utf8',
            // 数据库表前缀
            'prefix'     => 'le_',
        ]
    ],
    
];

调用第二个数据库的方法 Db::connect 方法动态配置数据库连接信息

\think\facade\Db::connect('demo')
      ->table('news')
	->find();

如果某个模型类里面定义了connection属性的话,则该模型操作的时候会自动按照给定的数据库配置进行连接,而不是配置文件中设置的默认连接信息,例如:

<?php
namespace app\index\model;
 
use think\Model;
 
class User extends Model
{
   protected $connection = 'demo';
}