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

ユーザガイドを検索

# データベース設定

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";`

単純な１次元配列を使わずに、多次元配列を使う理由は、オプションで、接続用のデータを複数セット利用できるようにするためです。 たとえば、ひとつのインストール方法で、複数の環境（開発用、製品用、テスト用など）で実行するような場合に、各環境ごとに接続設定をグループ化しておき、動かす環境に必要なグループに切り替えるといったことが可能です。たとえば、"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、postgres、odbc など。小文字で指定しなければなりません。
- dbprefix - オプションのテーブル名プリフィックス（接頭辞）。これは、Active Record を使った問い合わせを実行するときに、テーブル名に付加される接頭辞になります。これを指定すると、単一のデータベースを共有して CodeIgniter を複数インストールすることが可能になります。
- pconnect - TRUE/FALSE (boolean) - 永続的な接続を使うかどうか。
- db_debug - TRUE/FALSE (boolean) - データベースエラーを表示するかどうか。
- cache_on - TRUE/FALSE (boolean) - データベースクエリのキャッシュを有効にするかどうか。データベースキャッシュクラスを参照してください。
- cachedir - データベースクエリのキャッシュディレクトリへの絶対サーバパス。
- char_set - データベースとの通信に使用される文字セット。
- dbcollat - データベースとの通信に使用される照合順序。
- port - データベースのポート番号。現在のところ Postgres ドライバでのみ使用されます。この値を指定するには、データベース設定の配列に以下のような行を追加します。`$db['default']['port'] = 5432;`

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