首页 > 数据库 >Thinkphp6多数据库实例跨库操作

Thinkphp6多数据库实例跨库操作

时间:2024-08-14 14:56:38浏览次数:17  
标签:database 跨库 数据库 DB Thinkphp6 实例 env mysql DB2

ThinkPHP6

.env文件
database.php数据库配置

配置 .env 文件

# 默认数据库配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=default_db
DB_USERNAME=root
DB_PASSWORD=

# 第二个数据库配置
DB2_CONNECTION=mysql
DB2_HOST=127.0.0.1
DB2_PORT=3306
DB2_DATABASE=second_db
DB2_USERNAME=root
DB2_PASSWORD=

config/database.php配置

database.php配置文件中可以使用.env配置中的参数

return [

    // 默认数据库连接配置
    'default' => env('DB_CONNECTION', 'mysql'),

    'connections' => [
        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

        // 第二个数据库连接
        'mysql2' => [
            'driver' => 'mysql',
            'host' => env('DB2_HOST', '127.0.0.1'),
            'port' => env('DB2_PORT', '3306'),
            'database' => env('DB2_DATABASE', 'forge'),
            'username' => env('DB2_USERNAME', 'forge'),
            'password' => env('DB2_PASSWORD', ''),
            'unix_socket' => env('DB2_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
    ],

    // 其他配置项...
];

使用多数据库连接

// 使用默认的数据库连接
$defaultData = DB::table('users')->get();

// 使用第二个数据库连接
$secondDbData = DB::connection('mysql2')->table('orders')->get();

标签:database,跨库,数据库,DB,Thinkphp6,实例,env,mysql,DB2
From: https://www.cnblogs.com/aeolian/p/18358991

相关文章

  • Mysql跨库操作
    在MySQL中,操作多数据源(例如从库A和库B)进行联查的情况,可以分为以下两种场景:A库和B库在同一个MySQL实例当A库和B库在同一个MySQL实例下时,可以直接使用跨库联查查询。示例如下:SELECTA.column1,B.column2FROMA.table1ASALEFTJOINB.table2ASBONA.id=......
  • KEEPALIVED高可用集群原理及实例
    一.高可用集群1.1Keepalived介绍Keepalived是一个用C语言编写的轻量级的高可用解决方案软件。主要功能包括:1.实现服务器的高可用性(HighAvailability):通过虚拟路由冗余协议(VRRP)来实现主备服务器之间的故障切换,当主服务器出现故障时,备份服务器能够自动接管服务,保证业务的......
  • Δ-Σ ADC选型时噪声性能实例详解
    1系统规格   假设一个灵敏度为2mV/V、激励电压为2.5V的电桥,数据采样率为5SPS。1kg最大施加重量时,最大输出电压为5mV,系统希望能够检测最小应用重量为50mg(电压信号为50/1000000*5mV=250nV)。2无噪声分辨率计算    根据系统需求,可先计算出无噪声计数和无......
  • 解密Java中介者模式:代码实例带你深入理解
    1.引言:中介者模式的重要性在软件设计的世界里,模块间的相互依赖往往会导致系统的复杂性和维护难度的增加。中介者模式(MediatorPattern)作为一种行为设计模式,它的出现就是为了解决这一问题。通过引入一个中介者对象,它能够协调各个模块之间的通信,从而实现模块间的解耦,提高系......
  • C/C++指针无关联,因为它指向已销毁的实例
    一、概述在使用Qt+OpenCV做项目的过程中,发现一个问题。指针无关联,因为它指向已销毁的实例产生这个问题的代码如下:constchar*GLSquareWindow::readFileToString(QStringresPath){QFilevertexShaderFile(resPath);if(!vertexShaderFile.open(QIODev......
  • Cookie、localStorage 和 sessionStorage 的区别及应用实例
    在前端开发中,持久化数据存储是一个非常常见的需求。为了实现这一点,浏览器提供了多种方式,包括Cookie、localStorage和sessionStorage。这三者各有优劣,适用于不同的场景1.CookieCookie是浏览器存储少量数据的一种机制,通常由服务器生成并发送到客户端。每次客户端向同一域名发......
  • DolphinDB 中高频回测解决方案:期货分钟频 CTA 策略回测实例
    CTA策略在现代金融市场中扮演着重要角色,通过技术分析和趋势跟踪,其能够帮助用户捕捉市场动向,实现风险对冲和利润最大化。在中高频交易中,CTA策略对交易效率、盈利能力的助益尤为明显。在投入实盘交易之前,利用市场的历史数据对量化中高频策略进行测试和评估是确保交易策略有效......
  • PrimeFaces SelectOneMenu 与 Ajax 集成实例解析
    ======在现代Web开发中,用户界面的交互性是至关重要的。PrimeFaces作为JavaServerFaces(JSF)的一个流行UI组件库,提供了丰富的组件来增强用户界面。本文将通过一个具体实例,详细介绍如何使用PrimeFaces的SelectOneMenu组件与Ajax技术相结合,实现在选择事件时通过Ajax提交数据。......
  • 【嵌入式DIY实例-ESP32篇】-物联网实时电池电流和功率监控
    物联网实时电池电流和功率监控文章目录物联网实时电池电流和功率监控1、硬件准备与接线:2、代码实现3、运行结果锂离子电池是消费电子产品中最受欢迎的电池。然而,无论是新手还是经验丰富的工程师和爱好者,在选择适合他们项目的电池时都会面临问题。一个主要问......
  • 【ESP01开发实例】-ESP-01远程控制RGB三色LED
    ESP-01远程控制RGB三色LED文章目录ESP-01远程控制RGB三色LED1、硬件准备及接线2、代码实现在本文中,我们将使用ESP8266ESP01WiFi模块控制1瓦RGBLED。可以使用任何支持Wi-Fi的设备访问Web界面来控制此RGBLED。在这里,我们用esp8266创建了一......