Database はじめに

はじめに

Fuel はドライバベースのデータベース抽象化レイヤーを提供します。執筆時点のサポート対象ドライバは、 MySQL 、MySQLi そして PDO です。標準のデータベース処理に加えて、Fuel には データベースの生成や列追加など、データベース操作のための DBUtil クラスも 用意されています。

各ドライバにおいて、すべての機能をサポートしているわけではないことに注意してください。

設定

データベースの操作を行うには、データベース設定を変更する必要があります。 まずは、全ての環境で適用される、グローバルとなる設定を APPPATH/config/db.php に定義します。次に、適切な環境設定フォルダ内の db.php に、環境別のデータベース設定を定義します。 これら2つは、完全なデータベース設定としてマージされます。

データベース設定は次のようなフォーマットです:

// MySQL ドライバの設定
'development' => array(
	'type'           => 'mysqli',
	'connection'     => array(
		'hostname'       => 'localhost',
		'port'           => '3306',
		'database'       => 'fuel_db',
		'username'       => 'your_username',
		'password'       => 'y0uR_p@ssW0rd',
		'persistent'     => false,
		'compress'       => false,
	),
	'identifier'     => '`',
	'table_prefix'   => '',
	'charset'        => 'utf8',
	'enable_cache'   => true,
	'profiling'      => false,
	'readonly'       => false,
),

// PDO ドライバで PostgreSQL を使う設定
'production' => array(
	'type'           => 'pdo',
	'connection'     => array(
		'dsn'            => 'pgsql:host=localhost;dbname=fuel_db',
		'username'       => 'your_username',
		'password'       => 'y0uR_p@ssW0rd',
		'persistent'     => false,
		'compress'       => false,
	),
	'identifier'     => '"',
	'table_prefix'   => '',
	'charset'        => 'utf8',
	'enable_cache'   => true,
	'profiling'      => false,
	'readonly'       => array('slave1', 'slave2', 'slave3'),
),

'slave1' => array(
	// 本番環境の読み込み専用スレーブ DB 1 台目の設定
),

'slave2' => array(
	// 本番環境の読み込み専用スレーブ DB 2 台目の設定
),

'slave3' => array(
	// 本番環境の読み込み専用スレーブ DB 3 台目の設定
),

type は全ての接続で必要とされる事に注意してください。

全設定項目

項目 説明
type string 接続に使う種類。mysql 、mysqli または pdo 。
connection array 接続情報の配列
connection.dsn string PDO の DSN
connection.username string ユーザ名
connection.password string パスワード
connection.persistent boolean 持続的接続を開始するかどうか
connection.compress boolean MySQL または MySQLi を使用する際に、クライアントでの圧縮プロトコルを使用するかどうか
identifier string デリミタに使われるクオートの識別子
table_prefix string テーブルのプレフィックス
charset string 文字セット
enable_cache boolean キャッシュ機能を使うかどうか。接続ベースでクエリキャッシュ設定を上書きします
profiling boolean プロファイラにクエリ情報を追加するかどうか
readonly array|false データベースがマスター/スレーブ環境ならば、スレーブサーバの配列を定義できます。データベース読み込み処理の際には、この値の中からランダムに選択されて使用されます。

設定が済んだら、使ってみましょう