Laravel框架实现多数据库连接操作详解


Posted in PHP onJuly 12, 2019

本文实例讲述了Laravel框架实现多数据库连接操作。分享给大家供大家参考,具体如下:

这篇文章介绍了在laravel中连接2个数据库的方法

一、定义连接

进入到数据库配置文件 app/config/database.php 中,你可以定义多个形式相同或不同的数据库连接。例如,你想从2个 MYSQL 数据中抓取资料到你的程式中,你可以这样定义:

<?php
return array(
  'default' => 'mysql',
  'connections' => array(
    # Our primary database connection
    'mysql' => array(
      'driver'  => 'mysql',
      'host'   => 'host1',
      'database' => 'database1',
      'username' => 'user1',
      'password' => 'pass1'
      'charset'  => 'utf8',
      'collation' => 'utf8_unicode_ci',
      'prefix'  => '',
    ),
    # Our secondary database connection
    'mysql2' => array(
      'driver'  => 'mysql',
      'host'   => 'host2',
      'database' => 'database2',
      'username' => 'user2',
      'password' => 'pass2'
      'charset'  => 'utf8',
      'collation' => 'utf8_unicode_ci',
      'prefix'  => '',
    ),
  ),
);

默认连接任然是mysql,除非指定其他连接,如mysql2,我们的连接都是mysql连接。

2、指定连接

现在我们来指定mysql2连接,怎么做呢:

Schema 数据库迁移

用 Schema facade 可以创建任意连接。现在只需要用 connection() 方法就可以在指定的数据库中创建table

Schema::connection('mysql2')->create('some_table', function($table)
{
  $table->increments('id'):
});

如果不加connection() 方法,就是在默认的数据库中创建table

查询

和上面一样,用connection()方法

$users = DB::connection('mysql2')->select(...);

Eloquent

在模型中指定连接数据库方法,在模型中设置 $connection 变量

<?php
class SomeModel extends Eloquent {
  protected $connection = 'mysql2';
}

在控制器中用 setConnection 方法也可连接指定数据库

<?php
class SomeController extends BaseController {
  public function someMethod()
  {
    $someModel = new SomeModel;
    $someModel->setConnection('mysql2');
    $something = $someModel->find(1);
    return $something;
  }
}

跨数据库连接是可以的,但是也可能带来一些问题,这取决于你的数据库或者数据库配置,所以要谨慎使用。

原文地址:http://fideloper.com/laravel-multiple-database-connections

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
理解php依赖注入和控制反转
May 11 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 #PHP
微信推送功能实现方式图文详解
Jul 12 #PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 #PHP
PHP实现字母数字混合验证码功能
Jul 11 #PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 #PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 #PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 #PHP
You might like
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP的5个安全措施小结
2012/07/17 PHP
php header功能的使用
2013/10/28 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
学习标兵获奖感言
2014/02/20 职场文书
消防安全宣传标语
2014/06/07 职场文书
建筑施工安全责任书
2014/07/24 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
教师自我剖析材料
2014/09/29 职场文书
中班教师个人总结
2015/02/05 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
JavaScript实现简单的音乐播放器
2022/08/14 Javascript