• 技术文章 >php框架 >ThinkPHP

    thinkphp5多数据库配置介绍

    尚2020-04-28 09:11:03转载1001

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

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

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

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

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

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

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

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

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

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

    <?php
    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: liu21st <liu21st@gmail.com>
    // +----------------------------------------------------------------------
     
    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可以看作是两个不同的数据库连接

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

    <?php
    use think\Db;
    $verify1 = Db::connect('db_config1')->table('tablename')->where([
       ['username','=',$username],
       ['password','=',$password],
    ])->find();
     
    $verify2 = Db::connect('db_config2')->table('tablename')->where([
       ['username','=',$username],
       ['password','=',$password],
    ])->find();

    推荐教程:《TP5

    以上就是thinkphp5多数据库配置介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:thinkphp
    上一篇:thinkphp5中常用数据库查询语句介绍 下一篇:tp5实现收藏功能并且可切换颜色的方法
    线上培训班

    相关文章推荐

    • thinkphp中常用的提交表单的方法• thinkphp中统计查询的方法介绍• thinkphp设置定时执行任务的方法• 解决thinkphp中控制器无法加载的问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网