THINKPHP5.1多数据库配置

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

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

  • 惯例配置:核心框架内置的配置文件,无需更改。
  • 应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置。
  • 模块配置:每个模块的配置文件(相同的配置参数会覆盖应用配置),有部分配置参数模块配置是无效的,因为已经使用过。
  • 动态配置:主要是指在控制器或者行为中进行(动态)更改配置,该配置方式只在当次请求有效,因为不会保存到配置文件中。

 

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

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

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

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

 
  1. <?php

  2. // +----------------------------------------------------------------------

  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]

  4. // +----------------------------------------------------------------------

  5. // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.

  6. // +----------------------------------------------------------------------

  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )

  8. // +----------------------------------------------------------------------

  9. // | Author: liu21st <liu21st@gmail.com>

  10. // +----------------------------------------------------------------------

  11.  
  12. return [

  13. // 数据库类型

  14. 'type' => 'mysql',

  15. // 服务器地址

  16. 'hostname' => '127.0.0.1',

  17. // 数据库名

  18. 'database' => '',

  19. // 用户名

  20. 'username' => 'root',

  21. // 密码

  22. 'password' => '',

  23. // 端口

  24. 'hostport' => '',

  25. // 连接dsn

  26. 'dsn' => '',

  27. // 数据库连接参数

  28. 'params' => [],

  29. // 数据库编码默认采用utf8

  30. 'charset' => 'utf8',

  31. // 数据库表前缀

  32. 'prefix' => '',

  33. // 数据库调试模式

  34. 'debug' => true,

  35. // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)

  36. 'deploy' => 0,

  37. // 数据库读写是否分离 主从式有效

  38. 'rw_separate' => false,

  39. // 读写分离后 主服务器数量

  40. 'master_num' => 1,

  41. // 指定从服务器序号

  42. 'slave_no' => '',

  43. // 自动读取主库数据

  44. 'read_master' => false,

  45. // 是否严格检查字段是否存在

  46. 'fields_strict' => true,

  47. // 数据集返回类型

  48. 'resultset_type' => 'array',

  49. // 自动写入时间戳字段

  50. 'auto_timestamp' => false,

  51. // 时间字段取出后的默认时间格式

  52. 'datetime_format' => 'Y-m-d H:i:s',

  53. // 是否需要进行SQL性能分析

  54. 'sql_explain' => false,

  55. // Builder类

  56. 'builder' => '',

  57. // Query类

  58. 'query' => '\\think\\db\\Query',

  59. // 是否需要断线重连

  60. 'break_reconnect' => false,

  61. // 断线标识字符串

  62. 'break_match_str' => [],

  63. 'db_config1' => [

  64. // 数据库类型

  65. 'type' => 'sqlsrv',

  66. // 服务器地址

  67. 'hostname' => '192.168.1.1',

  68. // 用户名

  69. 'username' => 'username',

  70. // 密码

  71. 'password' => 'passwd',

  72. // 数据库名称

  73. 'database' => 'dbname',

  74. ],

  75. 'db_config2' => [

  76. // 数据库类型

  77. 'type' => 'mysql',

  78. // 服务器地址

  79. 'hostname' => '192.168.1.2',

  80. // 用户名

  81. 'username' => 'username',

  82. // 密码

  83. 'password' => 'passwd',

  84. // 数据库名称

  85. 'database' => 'dbname',

  86. ]

  87. ];

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

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

 
  1. <?php

  2. use think\Db;

  3. $verify1 = Db::connect('db_config1')->table('tablename')->where([

  4. ['username','=',$username],

  5. ['password','=',$password],

  6. ])->find();

  7.  
  8. $verify2 = Db::connect('db_config2')->table('tablename')->where([

  9. ['username','=',$username],

  10. ['password','=',$password],

  11. ])->find();

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值