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 相关文章推荐
风格模板初级不完全修改教程
Oct 09 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
PHP 图片上传代码
Sep 13 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
php7 安装yar 生成docker镜像
May 09 PHP
php的扩展写法总结
May 14 PHP
PHP网页缓存技术优点及代码实例
Jul 29 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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
实用函数5
2007/11/08 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
PHP的引用详解
2015/02/22 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
vue生成随机验证码的示例代码
2017/09/29 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
发布你的Python模块详解
2016/09/15 Python
使用python实现多维数据降维操作
2020/02/24 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
爱护公共设施标语
2014/06/24 职场文书
社区党务工作总结2015
2015/05/19 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
js不常见操作运算符总结
2021/11/20 Javascript