libro
www.tuyano.com
初心者のためのCakePHP2 プログラミング入門

モデルとデータベース (3/5)

作成:2011-11-14 07:56
更新:2011-11-14 08:08

■データベース設定ファイルを用意する

データベースとテーブルができたら、CakePHPからこのデータベースを利用するように設定を行いましょう。CakePHPには、データベースにアクセスするための設定情報を記述した専用ファイルが用意されています。

このファイルは、「app」フォルダ内の「Config」フォルダ内になる「database.php」というファイルです。このファイルに、データベースアクセスに関する基本的な設定情報が記述されます。といっても、.php拡張子からもわかるように、これはPHPのスクリプトファイルです。

この中には、データベースの設定を管理する「DATABASE_CONFIG」というクラスが定義されています。これは、以下のような形で定義されます。
class DATABASE_CONFIG {
    public $default = 連想配列;
    public $test = 連想配列;
}
$defaultが、デフォルトで使われるデータベース設定になります。$testは、テスト時に使用される設定です。この$testは、不要であれば用意しなくても問題ありません。

データベースの設定は、連想配列としてまとめて設定します。用意する項目は、データベースによって多少違いがあります。主なものを以下に整理しておきましょう。

datasource――使用するデータベースの種類を設定します。MySQLの場合は、’Database/Mysql’とします。PHPに組み込まれているSQLiteを使う場合は’Database/Sqlite’PostgreSQLの場合は’Database/Postgres‘としておきます。

host――MySQLはデータベースサーバーとして機能しますので、サーバーが動くホストを指定する必要があります。ローカル環境で使うなら、’localhost’でOKです。

login――データベースにログインするのに用いるユーザー名を指定します。MySQLがデフォルトのままなら’root’を指定しておきます。

password――ログイン時のパスワードを指定します。MySQLがデフォルトのままなら’’と空のテキストを指定します。

database――使用するデータベース名を指定します。ここでは、先ほど作成した’MySampleData’を指定しておきます。

encoding――エンコーディングの指定です。データベースとテーブルを作成する際に項目のエンコードを指定してあるなら、これは不要でしょう。ここでは’utf8’を指定しています。

persistent――これは持続的接続のための設定です。データベースへの負荷が大きくなりますから通常はfalseにします。
port――接続ポートの指定です。データベースサーバーのデフォルトポート番号のままなら、これは不要です。

prefix――テーブルの頭につけるプレフィクス(接頭辞)を指定するものです。特に指定していなければ用意する必要はありません。

これらはすべて用意する必要があるわけではなく、必要なものだけを連想配列にまとめていきます。MySQLであれば、datasourcehostloginpassworddatabaseの5項目は最低限必要となります。

これらの設定を行って保存したら、Webアプリケーションのルートにアクセスしてみましょう(cake2というフォルダでCakePHPが用意されているなら、http://localhost/cake2/)。CakePHPの状況が表示されます。ここで一番下の項目に「Cake is able to connect to the database.」と緑色で表示されていますか? これが現れていれば、無事、CakePHPからデータベースに接続できています。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※database.php

<?php
class DATABASE_CONFIG {

	public $default = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'root',
		'password' => '',
		'database' => 'MySampleData',
		'encoding' => 'utf8'
	);
}

※関連コンテンツ

「初心者のためのCakePHP2 プログラミング入門」に戻る