首页 > 解决方案 > Laravel - 在单个查询中使用多连接

问题描述

我在我的项目中使用了多个数据库。但是可以在 laravel 的单个查询中使用多个连接吗?这是我的连接配置。

 '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' => false,
        'engine' => null,
    ],

    'mysql_pdd' => [
        'driver' => 'mysql',
        'host' => env('DB_PDD_HOST', '127.0.0.1'),
        'port' => env('DB_PDD_PORT', '3306'),
        'database' => env('DB_PDD_DATABASE', 'forge'),
        'username' => env('DB_PDD_USERNAME', 'forge'),
        'password' => env('DB_PDD_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],

我想在与表的mysql连接中加入一个mysql_pdd表。那可能吗?

标签: laravel

解决方案


Yes, you can but for that you need to put condition, when you want to connect 'mysql' and when 'msql_pdd'.

if (mysql_connection){
 $mysql =DB:: reconnect('mysql');
}else if(mysql_pdd_connection){
 $mysql_pdd =DB:: reconnect('mysql_pdd');
}

使用 $mysql 和 $mysql_pdd 你也可以通过代码而不是查询来执行连接。


推荐阅读