この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2018-07-22 08:12:43

タイトル: 複数のデータベースに接続する方法

本稿ではLaravelにて複数データベースに接続する方法に関して記述します。

 

ポイントは「/config/database.php」ファイルとなるので開きましょう。

もうひとつDBの設定を追加する場合は以下のように記述します。(黄色い文字が追記した部分)

    '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('DB_HOST_2', '127.0.0.1'),
            'port' => env('DB_PORT_2', '3306'),
            'database' => env('DB_DATABASE_2', 'forge'),
            'username' => env('DB_USERNAME_2', 'forge'),
            'password' => env('DB_PASSWORD_2', ''),
            'unix_socket' => env('DB_SOCKET_2', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],   

],

 

.envファイルには「DB_HOST_2」など新しいDBの接続設定を記述しておいて下さい。

実際に2つ目のSQLを実行する際には以下のように記述します。

DB::connection('mysql2')->select('select * from members');

 

なお、1つめのDBに接続する際は今までどおり明示的な「connection」を記述する必要はありません。

理由は「/config/database.php」の「default」に設定されているのが1つめのDBだからです。