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 相关文章推荐
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
php flush类输出缓冲剖析
Oct 19 PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
php共享内存段示例分享
Jan 20 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP中COOKIES使用示例
Jul 26 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
自制PHP框架之设计模式
May 07 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
PHP 代码简洁之道(小结)
Oct 16 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
Firefox outerHTML实现代码
2009/06/04 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
Python3处理文件中每个词的方法
2015/05/22 Python
python检测是文件还是目录的方法
2015/07/03 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
python万年历实现代码 含运行结果
2017/05/20 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python 实现逻辑回归
2020/12/30 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
学生实习推荐信范文
2013/11/26 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
毕业生自荐书
2014/02/02 职场文书
党校学习自我鉴定
2014/02/24 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
教师节倡议书2015
2015/04/27 职场文书
2015小学师德工作总结
2015/07/21 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL