はじめに
本連載では、PHPまたはプログラミング初心者の方を対象に、PHPを用いたWebアプリケーションの作成方法を説明していきます。今回は、データベースとSQLに関して、「おすすめレストラン一覧を閲覧できるWebサイトを制作する場合」を例にして、説明をしていきます。
対象読者
- プログラミングが初めてでこれから学習する予定の方
- プログラミングの経験はあるがPHPを初めて学習する方
これまでの連載
- 第1回「プログラムってなんだろう? PHPってどういうもの?」
- 第2回「XAMPPをインストールして開発環境を整えよう!」
- 第3回「変数の扱い方を習得しよう!」
- 第4回「条件分岐と繰り返しを使いこなそう!」
- 第5回「入力フォームを使ってデータを送受信しよう!」
動作確認環境
PHPが動作する環境が必要となります。以下に、今回のアプリケーション作成/動作確認に用いた環境を示します(インストールにあたっては最新安定版の使用を推奨します)。
- Windows XP SP3
- PHP 5.2.6
- Apache 2.2.9
- MySQL5.0.67
- phpMyAdmin2.11.9.2
また、上記のサーバ環境を一括でインストールできるパッケージ「XAMPP」がありますので、こちらもご活用ください。XAMPPのインストール方法やPHPの環境構築に関しては第2回を参照ください。
データベースとは何か
もしも皆さんがおすすめレストランの一覧を閲覧できるWebサイトを制作するとしたら、どのように作りますか?
レストランの数が10店舗程度であればプログラムを使う事なく、HTMLで直接、10店舗分のレストランを記述すれば実現できそうです。しかし、3,000店舗の情報を扱うようなサイトであれば、HTMLの分量もかなりのものになります。店が入れ替わる度にメンテナンスを行うのも大変そうです。また、ちょっとしたデザインの変更を行う際にも、3,000店舗分のデザインをすべて変更しなければなりません。
そのような時は、店舗情報のデータだけをHTMLとは切り離した別領域で管理し、PHPを使って読み込んだ店舗データを3,000回ループして表示するように設計すれば、管理が楽になります。
ここで言う店舗情報のようなさまざまな情報を格納するデータの集合体を「データベース」と呼びます。
データベースの具体的なイメージとしては「高機能なEXCEL」のようなものだと思ってください。Webアプリケーションを始めとする多くのシステムでは、データベースを使って情報を管理しています。例えば、レストラン店舗情報を管理するデータベースは次のような構造をしています。

上図のような、表全体のことを「テーブル」と呼びます。また、「店舗No」「住所」「店名」等の縦の列を「カラム」と呼び、横の行のことを「レコード」と呼びます。『店舗テーブルの2番目のレコードの住所カラムは“高円寺”である』といった使い方をします。これらの言葉は、今後の説明で頻繁に登場するので、まずはしっかりとそれぞれが何を意味するのか、理解しておいてください。
データベースを使う事で障害に強く、不整合の無い情報管理が実現できます。本連載では、XAMPPに同梱されており、最もメジャーなデータベースの1つでもある「MySQL」を用います。その他のデータベースの種類としては、PostgreSQL、Oracle、SQLiteなどがあります。



