欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-22 16:31:38
前言 上文说到的文章,然后在总结下laravel同时连接 多个数据库的实例,方便新手学习,db连接以及model连接。 配置.env 文件 db_c...

前言

上文说到的文章,然后在总结下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();

总结

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