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

前言

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

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

配置.env 文件

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

// 默认连接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连接)

<?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\’连接)

<?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实例

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

DB直接连接数据库

// 连接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();

总结

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容