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学习笔记之一
Jan 17 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
php生成无限栏目树
Mar 16 PHP
php实现的双色球算法示例
Jun 20 PHP
php libevent 功能与使用方法详解
Mar 04 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
提升PHP执行速度全攻略(上)
2006/10/09 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
使用js画图之画切线
2015/01/12 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
小程序指纹验证的实现代码
2018/12/04 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python实现矩阵转置的方法分析
2017/11/24 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
python绘制封闭多边形教程
2020/02/18 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
介绍一下#error预处理
2015/09/25 面试题
学生档案自我鉴定
2013/10/07 职场文书
中学生寄语大全
2014/04/03 职场文书
主题党日活动总结
2014/07/08 职场文书
学习作风建设心得体会
2014/10/22 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
老人节主持词
2015/07/04 职场文书
怎样写好工作计划
2019/04/10 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
mysql sql常用语句大全
2022/06/21 MySQL
Python first-order-model实现让照片动起来
2022/06/25 Python
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript