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


Posted in PHP onAugust 13, 2019

前言

上文说到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();

总结

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

PHP 相关文章推荐
PHP初学入门
Nov 19 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
php 不使用js实现页面跳转
Feb 11 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 #PHP
php链式操作的实现方式分析
Aug 12 #PHP
基于PHP实现微信小程序客服消息功能
Aug 12 #PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 #PHP
PHP基于swoole多进程操作示例
Aug 12 #PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 #PHP
php使用pecl方式安装扩展操作示例
Aug 12 #PHP
You might like
php中文字符截取防乱码
2008/03/28 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
详解Vue2 添加对scss的支持
2019/01/02 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
vue中input的v-model清空操作
2019/09/06 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python解析yaml文件过程详解
2019/08/30 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
详解python tkinter 图片插入问题
2020/09/03 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
优秀教师事迹简介
2014/02/02 职场文书
2014年护士长工作总结
2014/11/11 职场文书
婚宴父亲致辞
2015/07/27 职场文书