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调用三种数据库的方法(1)
Oct 09 PHP
基于mysql的论坛(1)
Oct 09 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php下检测字符串是否是utf8编码的代码
Jun 28 PHP
php 多个submit提交表单 处理方法
Jul 07 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
PHP的autoload自动加载机制使用说明
Dec 28 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
PHP中的事务使用实例
May 26 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
javascript常见用法总结
2014/05/22 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
详细介绍Ruby中的正则表达式
2015/04/10 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
python 重定向获取真实url的方法
2018/05/11 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
员工培训邀请函
2014/02/02 职场文书
2014年采购员工作总结
2014/11/18 职场文书
小爸爸观后感
2015/06/15 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
Golang 实现超大文件读取的两种方法
2021/04/27 Golang