読者です 読者をやめる 読者になる 読者になる

FuelPHPで複数データベースの切り替え

FuelPHPで複数データベースを切り替える方法

FuelPHPでは複数データベースの切り替えが、CI同様、簡単に設定出来ます。

参考)
http://docs.fuelphp.com/classes/database/usage.html

fuel/app/config/db.php

まずは、DBのベース設定に対し、新しいデータベースグループを追加します。

<?php
return array(
    'active' => 'default',

    'default' => array(
        ...
    ),

    // 追加DB
    'another_db' => array(
        'type'        => 'pdo',
        'connection'  => array(
            'persistent' => false,
        ),
        'identifier'   => '`',
        'table_prefix' => '',
        'charset'      => 'utf8',
        'enable_cache' => true,
        'profiling'    => false,
    ),

fuel/app/config/development/db.php

次に、新しいデータベースグループの接続情報を設定します。
(productionを使用する場合は『fuel/app/config/production/db.php』に記述)

<?php
return array(
    'default' => array(
        ...
    ),
    'another_db' => array(
        'connection'  => array(
        'dsn'        => 'mysql:host=localhost;dbname=another_db',
        'username'   => 'dbuser',
        'password'   => 'dbuserpassword',
    ),
)

クエリ実行

execute時に、上で設定したデータベースグループ名を指定すれば、指定のデータベースへクエリを発行します。
当然、何も指定しない場合はactiveで指定しているデータベースグループが使用されます。

DB::query('SELECT * FROM users')->execute();
DB::query('SELECT * FROM users')->execute('another_db');


※Model_Crudを使っている場合、『$_connection』の設定だけで行けるみたいです
FuelPHPで1サイトを作ってみて気が付いた点など
ErogameScape -エロゲー批評空間- Blog : FuelPHPのmodel_CRUDで接続するDBを切り替える方法

最近のFWは全部こんな感じ?