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的正则处理函数总结分析
Jun 20 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
Apr 12 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP类的封装与继承详解
Sep 29 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
用PHP函数解决SQL injection
2006/12/09 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
JS在IE下缺少标识符的错误
2014/07/23 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python制作填词游戏步骤详解
2019/05/05 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Python如何telnet到网络设备
2021/02/18 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
个人求职简历中英文自我评价
2013/12/16 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
运动会广播稿20字
2014/02/18 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
政工例会汇报材料
2014/08/26 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
四年级小学生评语
2014/12/26 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
mysql查询结果实现多列拼接查询
2022/04/03 MySQL