MySQL 怎样在 Laravel 中使用多个数据库?

MySQL 怎样在 Laravel 中使用多个数据库?

Laravel 是一个广泛使用的 PHP 开发框架,MySQL 是其中使用最广泛的数据库之一。在 Laravel 中,开发人员可能需要同时连接到多个 MySQL 数据库。本文将介绍在 Laravel 中如何处理多个 MySQL 数据库的技术方法。

阅读更多:MySQL 教程

Laravel 中连接多个数据库

在 Laravel 中,从 config 数据库配置文件设置 connection 选项可以很容易地连接到多个 MySQL 数据库。 在此之前,需要在 config/database.php 文件中定义一个新的数据库连接。

'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', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
],

'secondary_mysql' => [
    'driver' => 'mysql',
    'host' => env('SECONDARY_DB_HOST', '127.0.0.1'),
    'port' => env('SECONDARY_DB_PORT', '3306'),
    'database' => env('SECONDARY_DB_DATABASE', 'forge'),
    'username' => env('SECONDARY_DB_USERNAME', 'forge'),
    'password' => env('SECONDARY_DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
],

在上面的配置文件中,可以看到定义了两个数据库连接:mysql 和 secondary_mysql。其中 secondary_mysql 是第二个数据库连接,而且其变量值是通过环境变量中查找而来的。接下来,需要在 .env 文件中添加这些值:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=forge
DB_USERNAME=root
DB_PASSWORD=

SECONDARY_DB_HOST=127.0.0.1
SECONDARY_DB_PORT=3306
SECONDARY_DB_DATABASE=forge_second
SECONDARY_DB_USERNAME=root
SECONDARY_DB_PASSWORD=

在 .env 文件中配置这些环境变量,就可以在 Laravel 中访问多个 MySQL 数据库了。下面就来看看如何在代码中使用这个配置。

在代码中使用多个 MySQL 数据库

在 Laravel 应用程序中,可以使用以下方法连接和使用多个 MySQL 数据库:

// 连接默认 MySQL 数据库
users = DB::table('users')->get();

// 连接名为 secondary_mysql 的数据库logs = DB::connection('secondary_mysql')->table('logs')->get();

使用 DB 或 DB::connection() 方法连接到不同的数据库,这一点很容易理解。此外,也可以在模板文件、控制器中等任何地方使用这种语法,只要需要访问数据库的内容。

总结

本文介绍了在 Laravel 中使用多个 MySQL 数据库的方法。通过编辑应用程序的配置文件和环境文件,可以轻松连接到多个 MySQL 数据库。同时,也展示了在代码中使用多个数据库连接的语法。希望这篇文章能够帮助到大家。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程