Laravel多个数据库连接
xuexi 2023-07-10 10:38:14 发表在:PHP 查看数:1027

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";

}

来源:https://zlhdsg.com/archives/1386

最近访问时间:2025-04-30 23:26:08
知识库:340条鸣谢:TAY  备案号:蜀ICP备2024090044号