前言
上文说到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