thinkphp5多数据库配置的案例-创新互联

小编给大家分享一下thinkphp5多数据库配置的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

城阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

ThinkPHP遵循惯例重于配置的原则,系统会按照下面的顺序来加载配置文件(配置的优先顺序从右到左)。

惯例配置->应用配置->模块配置->动态配置

惯例配置:核心框架内置的配置文件,无需更改。

应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置。

模块配置:每个模块的配置文件(相同的配置参数会覆盖应用配置),有部分配置参数模块配置是无效的,因为已经使用过。

动态配置:主要是指在控制器或者行为中进行(动态)更改配置,该配置方式只在当次请求有效,因为不会保存到配置文件中。

TP5.1的数据库配置文件在application\config\database.php中

当然,在application\模块名\config\database.php(模块配置)中的配置,优先级会比在application\config\database.php(应用配置)中高

比如同时在模块配置和在应用配置中配置数据库连接,那么会优先使用模块配置,如果模块配置中没有,那么会去找应用配置中的配置信息。动态配置的优先级高。

我们只需要在控制器和数据库配置文件中操作即可,无需用到模型


// +----------------------------------------------------------------------
 
return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => '',
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 自动读取主库数据
    'read_master'     => false,
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
    // Builder类
    'builder'         => '',
    // Query类
    'query'           => '\\think\\db\\Query',
    // 是否需要断线重连
    'break_reconnect' => false,
    // 断线标识字符串
    'break_match_str' => [],
    'db_config1'      => [
        // 数据库类型
        'type'            => 'sqlsrv',
        // 服务器地址
        'hostname'        => '192.168.1.1',
        // 用户名
        'username'        => 'username',
        // 密码
        'password'        => 'passwd',
        // 数据库名称
        'database'        => 'dbname',
    ],
    'db_config2'      => [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '192.168.1.2',
        // 用户名
        'username'        => 'username',
        // 密码
        'password'        => 'passwd',
        // 数据库名称
        'database'        => 'dbname',
    ]
];

db_config1和db_config2可以看作是两个不同的数据库连接

我们在控制器中就可以这样调用不同的数据库

table('tablename')->where([
   ['username','=',$username],
   ['password','=',$password],
])->find();
 
$verify2 = Db::connect('db_config2')->table('tablename')->where([
   ['username','=',$username],
   ['password','=',$password],
])->find();

看完了这篇文章,相信你对“thinkphp5多数据库配置的案例”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享标题:thinkphp5多数据库配置的案例-创新互联
本文链接:http://azwzsj.com/article/cchscg.html