zerosp.blog > PHP > 2008/05/16 23:26 >

[学習 cakePHP #01] データベースの作成、設定など。

前回記事でインストールを終えたので今回はデータベースの作成と設定などについてです。

その前に書き忘れましたがcakePHPはMVCに基づいたフレームワークです。簡単に書くとMはモデル(model)でデータベース関連の処理。Vはビュー(View)で画面表示処理。Cはコントローラー(Controller)で入力データなどを受け取ってモデルやビューに渡します。ですのでcakePHPでは3つの処理に対してのプログラムを書いていく感じになります。

cakePHPの基本的な名前の付けかたが、テーブル名・コントローラー名は複数形、モデル名が単数形になるみたいです。今回はGuest Bookを作成するのでデータベース名はguestbook。テーブル名は boards。コントローラーが borads_controller.php。モデルがboard.php。といった名前になります。

はい。ということで前回の続きへ入っていきます。

cakePHPのエラーメッセージ

データベース関連の設定をしていないので「Your database configuration file is not present.」といったエラーが出たところで終了しました。ですので今回はまずデータベースの作成をします。http://localhost/phpmyadmin/ でphpMyAdminへアクセスします。

データベースの作成

「utf8_unicode_ci」を選んでデータベースの新規作成。今回はGuest Bookを作成なのでそのまんま単純に guestbookとしました。続いてはデータベーステーブルの作成です。テーブル名がboardsで中身をPRIMARY KEY、created(作成日時)、modified(更新日時)はcakePHPでは必須項目のようです。今回はそれに加えて、name(投稿者名)、title(投稿タイトル)、body(内容)にしたいと思います。

phpMyAdminのデータベースguestbookへアクセスして、SQLより

CREATE TABLE boards (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  name TEXT,
  title TEXT,
  body TEXT,
  created DATETIME DEFAULT NULL,
  modified DATETIME DEFAULT NULL,
  PRIMARY KEY (id)
);

とクエリを実行。恥ずかしながらMySQLやらDB自体を触るのが初めてなので、前回の日経ソフトウェアのcakePHP特集とほぼ同じです。とりあえずデータベースの作成は済んだので設定のほうを。

C:\xampp\htdocs\guestbook\app\config

に database.php.default というファイルがありますのでそれを database.php として保存します。

<?php
  class DATABASE_CONFIG {
    var $default = array('driver' => 'mysql',
    'connect' => 'mysql_connect',
    'host' => 'localhost',
    'login' => 'ログイン名',
    'password' => 'パスワード',
    'database' => 'guestbook',
    'prefix' => '');
  }
?>

こんな感じかな。ログイン名、パスワードは自分の環境に合わせます。これで前回エラーが出た http://localhost/guestbook/ へアクセスしてみると

データベースの設定完了

Your database configuration file is present. Cake is able to connect to the database.で表示されれば無事データベースの設定は完了です。エラーが出てたりしたら、login、password、databaseの箇所を見直してみてください。

とりあえずデータベースの設定は終えたので今回はここまで。

投稿日 2008-05-16 23:26

当サイトのコメントとトラックバックの扱いについて。

スパム対策のため認証制となっています。受け取ったコメント、トラックバックは一旦保留扱いとなり管理人が許可したものだけ表示されます。

トラックバック

トラックバックの受付は停止中です。

コメント

コメントの受付は停止中です。