Fuelphp:データベースを複数使用する

Fuelphpデータベースに接続する時の設定ファイルは下記の場所にあります。

/fuel/app/config/db.php
/fuel/app/config/development/db.php

データベースの設定ファイルに別のデータベース情報を追加することで複数のデータベースを使用することが可能です。

下記にFuelphp複数データベース接続する為の設定方法・使用方法をメモします。


設定方法

下記のファイルに新しく設定するデータベース情報を追加します。

「fuel/app/config/db.php」

修正前

return array(

	'active' => 'default',

	'default' => array(
		'type'        => 'pdo',
		'connection'  => array(
			'persistent' => false,
		),
		'identifier'   => '`',
		'table_prefix' => '',
		'charset'      => 'utf8',
		'enable_cache' => true,
		'profiling'    => false,
	),

	'redis' => array(
		'default' => array(
			'hostname'  => '127.0.0.1',
			'port'      => 6379,
		)
	),

);

修正後

return array(

	'active' => 'default',

	'default' => array(
		'type'        => 'pdo',
		'connection'  => array(
			'persistent' => false,
		),
		'identifier'   => '`',
		'table_prefix' => '',
		'charset'      => 'utf8',
		'enable_cache' => true,
		'profiling'    => false,
	),

	'redis' => array(
		'default' => array(
			'hostname'  => '127.0.0.1',
			'port'      => 6379,
		)
	),

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

);

「fuel/app/config/development/db.php」

修正前

return array(

	'default' => array(
		'connection'  => array(
			'dsn'        => 'mysql:host=localhost;dbname=hoge',
			'username'   => 'ユーザー名',
			'password'   => 'パスワード',
		),
	),

);

修正後

return array(

	'default' => array(
		'connection'  => array(
			'dsn'        => 'mysql:host=localhost;dbname=hoge',
			'username'   => 'ユーザー名',
			'password'   => 'パスワード',
		),
	),

	// 追加
	'sample' => array(
		'connection'  => array(
			'dsn'        => 'mysql:host=localhost;dbname=sample',
			'username'   => 'ユーザー名',
			'password'   => 'パスワード',
		),
	),

);

使用方法

追加したデータベースに接続する場合は、下記のように記述します。

$query = \DB::select()->from('test');
$query->execute('sample')->as_array();

execute()に追加したデータベースを指定するとデータを参照することができます。