📜  如何在 laravel 中创建两个数据库连接 - C# (1)

📅  最后修改于: 2023-12-03 15:38:19.253000             🧑  作者: Mango

如何在 Laravel 中创建两个数据库连接

在 Laravel 中,我们可以非常方便地创建多个不同的数据库连接。这对于一些需要多个数据库的应用程序来说是非常有用的,比如说跨数据库的数据查询和分析。

步骤

要创建两个数据库连接,我们只需要按照以下步骤即可:

步骤 1

首先,我们需要在 .env 文件中添加我们的第二个数据库的配置。我们可以将其命名为 DB_CONNECTION_2,并为其提供相应的数据库名称、用户名和密码。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database1
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION_2=mysql
DB_HOST_2=127.0.0.1
DB_PORT_2=3306
DB_DATABASE_2=database2
DB_USERNAME_2=root
DB_PASSWORD_2=
步骤 2

接下来,我们需要在 config/database.php 文件中添加我们的第二个数据库连接配置。我们可以将其命名为 second_db,并设置它的连接类型、主机、端口、数据库名称、用户名和密码。

'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'default_db'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => env('DB_CHARSET', 'utf8mb4'),
        'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

    'second_db' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST_2', '127.0.0.1'),
        'port' => env('DB_PORT_2', '3306'),
        'database' => env('DB_DATABASE_2', 'second_db'),
        'username' => env('DB_USERNAME_2', 'root'),
        'password' => env('DB_PASSWORD_2', ''),
        'unix_socket' => env('DB_SOCKET_2', ''),
        'charset' => env('DB_CHARSET_2', 'utf8mb4'),
        'collation' => env('DB_COLLATION_2', 'utf8mb4_unicode_ci'),
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

],
步骤 3

最后,在我们的应用程序中,我们可以通过以下方式使用我们的两个数据库连接:

$users1 = DB::connection('mysql')->table('users')->get();
$users2 = DB::connection('second_db')->table('users')->get();
结论

通过这个简单的步骤,我们可以在 Laravel 应用程序中创建多个数据库连接,并在查询中使用它们。这使得在应用程序中实现跨数据库查询变得非常容易。