当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-10 17:03:58 浏览: 评论:0 

这篇文章主要给大家介绍了关于Laravel如何同时连接多个数据库的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。

前言

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

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

配置.env 文件

  1. DB_CONNECTION=mysql 
  2. DB_HOST=127.0.0.1 
  3. DB_PORT=3306 
  4. DB_DATABASE=database_name 
  5. DB_USERNAME=root 
  6. DB_PASSWORD=root 
  7.  
  8. DB_HOST_TEST=127.0.0.1 
  9. DB_PORT_TEST=3306 
  10. DB_DATABASE_TEST=database_test 
  11. DB_USERNAME_TEST=root 
  12. DB_PASSWORD_TEST=root 

配置 config/database.php

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

model实例(这个model将使用mysql_test连接)

  1. <?php 
  2.  
  3. namespace App\Model; 
  4.  
  5. use Illuminate\Database\Eloquent\Model; 
  6.  
  7. class Test extends Model 
  8.  // 数据库'database_test'中的test表 
  9.  public $table = 'test'
  10.  public $timestamps = false; 
  11.  protected $connection = 'mysql_test'
  12.  

model实例(这个model将采用默认的'mysql'连接)

  1. <?php 
  2.  
  3. namespace App\Model; 
  4.  
  5. use Illuminate\Database\Eloquent\Model; 
  6.  
  7. class Test extends Model 
  8.  // 数据库'database'中的test表 
  9.  public $table = 'test'
  10.  public $timestamps = false; 
  11.  // 以下代码可有可不、默认连接mysql 
  12.  protected $connection = 'mysql'
  13.  

a、这个model将采用默认的'mysql'连接

  1. class UserModel extends Model 
  2.  // 数据库'database'中的users表 
  3.  protected $table = "users"

b、调用model实例

  1. // 以下是调用方法 
  2. Test::get(); 
  3. Test::where('id',1)->first(); 

DB直接连接数据库

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

Tags: Laravel连接数据库

分享到: