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