Heim > PHP-Framework > Denken Sie an PHP > Einführung in die Konfiguration mehrerer Thinkphp5-Datenbanken

Einführung in die Konfiguration mehrerer Thinkphp5-Datenbanken

Freigeben: 2020-04-28 09:11:03
nach vorne
3895 Leute haben es durchsucht

Einführung in die Konfiguration mehrerer Thinkphp5-Datenbanken

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

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

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

<?php
use think\Db;
$verify1 = Db::connect(&#39;db_config1&#39;)->table(&#39;tablename&#39;)->where([
   [&#39;username&#39;,&#39;=&#39;,$username],
   [&#39;password&#39;,&#39;=&#39;,$password],
])->find();
 
$verify2 = Db::connect(&#39;db_config2&#39;)->table(&#39;tablename&#39;)->where([
   [&#39;username&#39;,&#39;=&#39;,$username],
   [&#39;password&#39;,&#39;=&#39;,$password],
])->find();
Nach dem Login kopieren

推荐教程:《TP5

Das obige ist der detaillierte Inhalt vonEinführung in die Konfiguration mehrerer Thinkphp5-Datenbanken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage