データベース設定
CodeIgniter には、データベース接続用のデータ(ユーザ名、パスワード、データベース名など)を保存できる設定ファイルがあります。設定ファイルは次の場所にあります:
application/config/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";
単純な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";
次に、システムに対して全体でそのグループを使うことを通知するため、設定ファイルにある下記の変数にグループ名をセットします:
$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 を有効にする必要があります。
設定データの説明:
- hostname - データベースサーバのホスト名。"localhost" になることがよくあります。
- username - データベースに接続するために使用するユーザ名。
- password - データベースに接続するために使用するパスワード。
- database - 接続したいデータベース名。
- dbdriver - データベースの種類。例: mysql、postgre、obdc など。小文字で指定しなければなりません。
- dbprefix - オプションのテーブル名プリフィックス(接頭辞)。これは、Active Record を使った問い合わせを実行するときに、テーブル名に付加される接頭辞になります。これを指定すると、単一のデータベースを共有して CodeIgniter を複数インストールすることが可能になります。
- pconnect - TRUE/FALSE (boolean) - 永続的な接続を使うかどうか。
- db_debug - TRUE/FALSE (boolean) - データベースエラーを表示するかどうか。
- cache_on - TRUE/FALSE (boolean) - データベースクエリのキャッシュを有効にするかどうか。データベースキャッシュクラスを参照してください。
- cachedir - データベースクエリのキャッシュディレクトリへの絶対サーバパス。
- char_set - データベースとの通信に使用される文字セット。
- dbcollat - データベースとの通信に使用される照合順序。
- port - データベースのポート番号。現在のところ Postgre ドライバでのみ使用されます。この値を指定するには、データベース設定の配列に以下のような行を追加します。
$db['default']['port'] = 5432;
Note: 使用しているデータベースプラットフォーム (MySQL、Postgreなど)によっては、すべての設定データが必要になるとは限りません。たとえば、SQLiteを使うときは、ユーザ名やパスワードは不要で、データベース名はデータベースファイルへのパスになります。上の情報は、MySQLを利用していると仮定しています。