Laravel多个数据库连接

Laravel多个数据库连接 ,把大象装冰箱,总共分三步!!!

1、配置.env文件

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

DB_HOST_CENTER=127.0.0.1
DB_PORT_CENTER=3306
DB_DATABASE_CENTER=database_center
DB_USERNAME_CENTER=root
DB_PASSWORD_CENTER=

2、配置config/database.php

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],
        'mysql_center' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST_CENTER', 'localhost'),
            'port' => env('DB_PORT_CENTER', '3306'),
            'database' => env('DB_DATABASE_CENTER', 'forge'),
            'username' => env('DB_USERNAME_CENTER', 'forge'),
            'password' => env('DB_PASSWORD_CENTER', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

3、查询数据

\DB::table('tb_banner')->get();//默认数据库

\DB::connection('mysql_center')->table('tb_banner')->get();//mysql_center

或者

a、这个model将采用默认的'mysql'连接
class UserModel extends Model
{
        // 数据库'database'中的users表
        protected $table = "users";
}

b、 这个model将使用mysql_center连接
class UserModel extends Model
{
    // 数据库'dadtabase_center'中的users表
        protected $connection = 'mysql_center';
        protected $table = "users";

}

3 评论
内联反馈
查看所有评论