CodeIgniter ユーザガイド 日本語版 Version 2.0.1


データベース設定

CodeIgniter には、データベース接続用のデータ(ユーザ名、パスワード、データベース名など)を保存できる設定ファイルがあります。 設定ファイルは application/config/database.php にあります。また、特定の 環境 のためのデータベース接続のための設定をするために、それぞれの環境の設定フォルダの中に database.php を置くこともできます。

設定は、次のひな形で、多次元配列で保存されています:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['swap_pre'] = "";
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

単純な1次元配列を使わずに、多次元配列を使う理由は、オプションで、接続用のデータを複数セット利用できるようにするためです。 たとえば、ひとつのインストール方法で、複数の環境(開発用、製品用、テスト用など)で実行するような場合に、 各環境ごとに接続設定をグループ化しておき、動かす環境に必要なグループに切り替えるといったことが可能です。 たとえば、"test" 用の環境をセットアップするには次のようにします:

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";
$db['test']['swap_pre'] = "";
$db['test']['autoinit'] = TRUE;
$db['test']['stricton'] = FALSE;

次に、システムに対して全体でそのグループを使うことを通知するため、設定ファイルにある下記の変数にグループ名をセットします:

$active_group = "test";

Note: 名前の "test" は任意です。好きなように設定できます。初期状態では、"default" を優先(プライマリ)接続として使っていますが、この名前もプロジェクトにふさわしい名前にリネームすることができます。

Active Record

Active Record クラス はデータベース設定ファイルの $active_record 変数に TRUE/FALSE(ブール値)をセットすることによりグローバルに有効または無効にできます。active record クラスを使用しない場合は、FALSEをセットするとデータベースクラスを初期化したときに、少ないリソースを有効活用できます。

$active_record = TRUE;

Note: Sessionなど、いくつかのCodeIgniterのクラスは特定の機能にアクセスするために Active Record を有効にする必要があります。

設定データの説明:

Note: 使用しているデータベースプラットフォーム (MySQL、Postgres など) によっては、すべての設定データが必要になるとは限りません。たとえば、SQLiteを使うときは、ユーザ名やパスワードは不要で、 データベース名はデータベースファイルへのパスになります。上の情報は、MySQLを利用していると仮定しています。