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();

THINKPHP5.1多数据库配置相关推荐

  1. think php数据库配置,think php 配置数据库

    一个可以把配置参数保存到数据库的函数 一个可以把配置参数保存到数据库的函数 浏览:962 发布日期:2014/05/22 分类:功能实现 关键字: 数据库 参数 不知道TP有没有这个功能,自己做了一个 ...

  2. VS中C#读取app.config数据库配置字符串的三种方法(转)

    关于VS2008或VS2005中数据库配置字符串的三种取法 VS2008建立Form程序时,如果添加数据源会在配置文件 app.config中自动写入连接字符串,这个字符串将会在你利用DataSet, ...

  3. mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载

    在做web应用系统中,如果数据库出现了性能瓶颈,而你又是使用的MySQL数据库,那么就可以考虑采用数据库集群的方式来实现查询负载了.因为一般来讲任何一个系统中数据库的查询操作比更新操作要多的多,因此通 ...

  4. yii2的model数据库配置以及应用(主从数据库配置)

    2019独角兽企业重金招聘Python工程师标准>>> 1.多数据库配置 'db' => require(__DIR__ . '/db.php'),'gdb' => re ...

  5. Django models数据库配置以及多数据库调用设置

    今天来说说web框架Django怎么配置使用数据库,也就是传说中MVC(Model View Controller)中的M,Model(模型). 简单介绍一下Django中的MVC: 模型(model ...

  6. 使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

    原文:使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置 摘要 讲解在IntelliJ IDEA中,如何进行Mysql数据库的配置 目录[-] 文章已针对IDEA 15做了一定的 ...

  7. jetspeed 安装及数据库配置

        今天安了一下午的jetspeed,数据库的配置怎么也弄不好,晚上就再重装了几次,最后发现是安装程序中自动生成的代码中存在问题. 安装: 1.首先到http://portals.apache.o ...

  8. mysql主备数据库配置_MySQL双主互备配置

    #主数据库配置 1.修改my.conf(windows下是my.ini)文件: 在[mysqld]部分插入如下两行: #开启二进制日志 log-bin=mysql-bin #设置server-id s ...

  9. kettle mysql 配置_Kettle数据库配置抽离

    在使用ETL工具Kettle时候,为了使作业或转换具有通用性,有时候,我们需要将数据库的连接配置从脚本或转换中抽离出来,下面介绍一种方案,该方案主要涉及的文件有: # 这两个文件,默认是在系统的用户目 ...

最新文章

  1. MySQL时间慢了八个小时
  2. REPLICAT RORA_1保持 ABENDED状态,无法启动问题处理
  3. MFC单文档框架编程(二): SDI框架下的消息处理
  4. 系统调用的实现(与errno的设置)
  5. postgres循环sql
  6. 30几岁该有多少存款才算合格?
  7. oracle中使用sql查询时字段为空则赋值默认
  8. LeetCode 1768. 交替合并字符串
  9. 流量主系列|微信AI人脸转换小程序源码
  10. onvif备忘录(1)--onvif简介及开发框架搭建
  11. java如何测controller层_用MockMvc对Spring mvc中的controller层进行单元测试
  12. SQL Server舍入功能概述– SQL舍入,上限和下限
  13. 分享10款保护隐私的搜索引擎,快手动收藏!
  14. y的花式写法_y的花式写法_26个字母的花式写法,总有一个你喜欢哒
  15. Bing 必应突然不能用了(2021 年 17 日最新情况),怎么办?问题已解决
  16. 解决IE7无法设置空白页的办法
  17. GGC/ITF/国自然
  18. 捕捉“五一劳动节”海报设计灵感
  19. 3DMax2021建模入门篇
  20. LORA芯片ASR6505无线远距离传输8位MCU

热门文章

  1. Java高级技术之Gradle
  2. NandFlash基础知识
  3. 程序员吐槽_程序员吐槽大全,欢迎补充,吐槽有礼!!
  4. 招商银行青岛分行金融科技岗招录
  5. 基于python完成大华摄像头对货车逆行实时检查的二次开发
  6. win7计算机未连接网络连接,W7系统网络未连接、连接不可用如何解决
  7. account-security-noreply@accountprotection.microsoft.com
  8. 如何使用 Solidity 创建 NFT
  9. Excel 导入导出、样式设计、Excel各种工具类整合,FileUtil、ExcelUtil
  10. 公路村村通 (30 分)