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新手上路(十三)
Oct 09 PHP
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php curl的深入解析
Jun 02 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
php验证码生成代码
Nov 11 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python操作Word批量生成文章的方法
2015/07/28 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
python3判断url链接是否为404的方法
2018/08/10 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
python滑块验证码的破解实现
2019/11/10 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
班队活动设计方案
2014/01/30 职场文书
给校长的建议书
2014/03/12 职场文书
yy生日主持词
2014/03/20 职场文书
网站客服岗位职责
2014/04/05 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
就业协议书怎么填
2014/09/15 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
大学生实习证明范本
2014/09/19 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书