当前位置:编程学习 > > 正文

laravel数据库配置(Laravel如何同时连接多个数据库详解)

时间:2021-10-30 10:57:40类别:编程学习

laravel数据库配置

Laravel如何同时连接多个数据库详解

前言

上文说到thinkphp3.2同时连接两个数据库的文章,然后在总结下laravel同时连接

多个数据库的实例,方便新手学习,db连接以及model连接。

配置.env 文件

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • DB_CONNECTION=mysql
  • DB_HOST=127.0.0.1
  • DB_PORT=3306
  • DB_DATABASE=database_name
  • DB_USERNAME=root
  • DB_PASSWORD=root
  •  
  • DB_HOST_TEST=127.0.0.1
  • DB_PORT_TEST=3306
  • DB_DATABASE_TEST=database_test
  • DB_USERNAME_TEST=root
  • DB_PASSWORD_TEST=root
  • 配置 config/database.php

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • // 默认连接mysql
  • 'default' => env('DB_CONNECTION', 'mysql'),
  •  
  • 'connections' => [
  •  
  •  'sqlite' => [
  •   'driver' => 'sqlite',
  •   'database' => database_path('database.sqlite'),
  •   'prefix' => '',
  •  ],
  •  
  •  'mysql' => [
  •   'driver' => 'mysql',
  •   'host' => env('DB_HOST', '127.0.0.1'),
  •   'port' => env('DB_PORT', '3306'),
  •   'database' => env('DB_DATABASE', 'database_name'),
  •   'username' => env('DB_USERNAME', 'root'),
  •   'password' => env('DB_PASSWORD', 'root'),
  •   'charset' => 'utf8',
  •   'collation' => 'utf8_unicode_ci',
  •   'prefix' => '',
  •   'strict' => false,
  •  ],
  •  
  •  'mysql_test' => [
  •   'driver' => 'mysql',
  •   'host' => env('DB_HOST_TEST', '127.0.0.1'),
  •   'port' => env('DB_PORT_TEST', '3306'),
  •   'database' => env('DB_DATABASE_TEST', 'database_test'),
  •   'username' => env('DB_USERNAME_TEST', 'root'),
  •   'password' => env('DB_PASSWORD_TEST', 'root'),
  •   'charset' => 'utf8',
  •   'collation' => 'utf8_unicode_ci',
  •   'prefix' => '',
  •   'strict' => false,
  •  ],
  •  
  •  ],
  • model实例(这个model将使用mysql_test连接)

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • <?php
  •  
  • namespace App\Model;
  •  
  • use Illuminate\Database\Eloquent\Model;
  •  
  • class Test extends Model
  • {
  •  // 数据库'database_test'中的test表
  •  public $table = 'test';
  •  public $timestamps = false;
  •  protected $connection = 'mysql_test';
  •  
  • }
  • model实例(这个model将采用默认的'mysql'连接)

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • <?php
  •  
  • namespace App\Model;
  •  
  • use Illuminate\Database\Eloquent\Model;
  •  
  • class Test extends Model
  • {
  •  // 数据库'database'中的test表
  •  public $table = 'test';
  •  public $timestamps = false;
  •  // 以下代码可有可不、默认连接mysql
  •  protected $connection = 'mysql';
  •  
  • }
  •  
  •  
  • a、这个model将采用默认的'mysql'连接
  • class UserModel extends Model
  • {
  •  // 数据库'database'中的users表
  •  protected $table = "users";
  • }
  •  
  • b、
  • 调用model实例

  • ?
  • 1
  • 2
  • 3
  • // 以下是调用方法
  • Test::get();
  • Test::where('id',1)->first();
  • DB直接连接数据库

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • // 连接mysql_test库
  • DB::connection('mysql_test')->table('test')->where('id',1)->first();
  • // 连接mysql库
  • DB::connection('mysq')->table('test')->where('id',1)->first();
  • // 连接mysql库
  • DB::table('test')->where('id',1)->first();
  • 总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。

    原文链接:https://juejin.im/post/5d424833518825221b4cbdd2

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐