Laravel框架實現多數據庫連接操作詳解

這篇文章主要介紹了Laravel框架實現多數據庫連接操作,結合實例形式詳細分析了Laravel框架連接2個數據庫的具體操作步驟與相關實現技巧,需要的朋友可以參考下

本文實例講述了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相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧彙總

希望本文所述對大家基於Laravel框架的PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章