本文實例講述了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 可以創(chuàng)建任意連接?,F在只需要用 connection()
方法就可以在指定的數據庫中創(chuàng)建table
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
如果不加connection()
方法,就是在默認的數據庫中創(chuàng)建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優(yōu)秀開發(fā)框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。
您可能感興趣的文章:- Laravel框架數據庫CURD操作、連貫操作總結
- Laravel5.1數據庫連接、創(chuàng)建數據庫、創(chuàng)建model及創(chuàng)建控制器的方法
- Laravel如何同時連接多個數據庫詳解
- laravel框架數據庫配置及操作數據庫示例
- Laravel獲取所有的數據庫表及結構的方法
- 淺談laravel數據庫查詢返回的數據形式
- Laravel創(chuàng)建數據庫表結構的例子
- laravel 操作數據庫常用函數的返回值方法
- Laravel5.5 數據庫遷移:創(chuàng)建表與修改表示例
- Laravel數據庫讀寫分離配置的方法
- Laravel框架DB facade數據庫操作詳解