laravel 多库配置

本文介绍了如何在.env文件和config/database.php中配置多个数据库连接,并展示了在 Laravel 框架中如何通过DB facade和Eloquent模型切换并使用不同的数据库连接进行数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. .env文件中添加

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

/*新增库需添加新配置*/
DB_CONNECTION_test=mysql   --重复可省略
DB_HOST_test=127.0.0.1   --重复可省略
DB_PORT_test=3306   --重复可省略
DB_DATABASE_test=test2
DB_USERNAME_test=root   --重复可省略
DB_PASSWORD_test=root   --重复可省略

2. 在config/database.php中添加配置

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
        
        'mysql_test' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST_test', ''),
            'port' => env('DB_PORT_test', '3306'),
            'database' => env('DB_DATABASE_test', ''),
            'username' => env('DB_USERNAME_test', ''),
            'password' => env('DB_PASSWORD_test', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            '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'),
            ]) : [],
        ],

3. 使用

//DB使用
$user = DB::connection('mysql_test')->table('user')->where('id',1)->first();

//model使用

//模型配置需设置当前模型使用的数据库连接名
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $connection = 'mysql_test';
    protected $table = 'user';
}


---------

$user = User::where('id',1)->first()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值