PHP基礎編では、データは変数(メモリ)やテキストファイルに保存していました。
しかし、本格的なWebアプリを作るなら「データベース」が必須です。
今回は、世界で最も使われているデータベース「MySQL(マイエスキューエル)」を使って、掲示板用のデータ保管庫を作ります。
データベースって何?
一言で言えば「超・高性能なExcel」です。
- Excel: 人間が見て編集するためのもの。
- データベース: プログラムが高速に書き込んだり、検索したりするためのもの。
Webアプリでは、1つの大きな「データベース」の中に、目的別の「テーブル(表)」を作って管理します。
管理ツール「phpMyAdmin」を開こう
データベースは本来、「黒い画面」でコマンドを打って操作するものですが、初心者にはハードルが高すぎます。
そこで、ブラウザからクリックだけで操作できる「phpMyAdmin(ピーエイチピー・マイアドミン)」を使います。
起動方法
- XAMPPの人: コントロールパネルの「MySQL」の右にある「Admin」ボタンを押す。
- MAMPの人: スタートページの「Tools」メニューから「phpMyAdmin」を選ぶ。
- または、ブラウザで
http://localhost/phpmyadmin/にアクセス。
こんな画面が開けば成功です!
ステップ1:データベース(箱)を作る
まずは、一番外側の大きな箱を作ります。
- 画面左上の「新規作成(New)」をクリック。
- データベース名に
bbs_appと入力。(BBS=掲示板の意味) - 照合順序(文字コード)は
utf8mb4_general_ciを選択。
(※これを選ぶと絵文字も保存できるようになります) - 「作成」ボタンをクリック。
ステップ2:テーブル(表)を作る
次に、データを入れる表を作ります。
掲示板のメッセージを入れるので、名前は messages にしましょう。
- 名前:
messages - カラム数(列の数):
4
「作成」を押すと、列の設定画面になります。
ここが一番重要です!以下のように入力してください。
| 名前 (Name) | データ型 (Type) | 長さ | その他 (A_I など) | 意味 |
|---|---|---|---|---|
| id | INT | – | A_I にチェック (Auto Increment) |
管理番号。 自動で1, 2, 3…と連番がつく。 |
| username | VARCHAR | 50 | – | 投稿者名。 50文字まで。 |
| comment | TEXT | – | – | 本文。 長い文章もOK。 |
| created_at | DATETIME | – | – | 投稿日時。 「2023-01-01 12:00:00」のような形。 |
入力が終わったら、画面下の「保存する」をクリック!
用語解説
- INT(イント): 整数。計算できる数字。
- VARCHAR(バーキャラ): 短い文字。名前やメールアドレスなど。
- TEXT(テキスト): 長い文字。ブログの本文など。
- A_I(オートインクリメント): 「自動連番」。これがないと、いちいち「次は5番で…」と指定しなきゃいけなくなるので、IDには必須!
- 主キー(Primary Key): データの背番号。A_Iをチェックすると自動で設定されます。
データを手動で入れてみよう
テーブルができたら、試しに手動でデータを入れてみましょう。
- 上部メニューの「挿入(Insert)」をクリック。
- id: 空欄でOK(自動で入るから)。
- username: 「テスト太郎」
- comment: 「データベース面白い!」
- created_at: カレンダーから適当な日時を選ぶ。
- 「実行」ボタンをクリック。
その後、「表示(Browse)」メニューを押して、今入れたデータが表示されていれば成功です!
まとめ
- データベース操作は phpMyAdmin が便利。
- まずはデータベース(箱)を作り、次にテーブル(表)を作る。
- id には必ず A_I(自動連番) をつける。
- 文字なら VARCHAR か TEXT を使う。
これでデータの入れ物が完成しました。
次回は、PHPプログラムを使って、このデータベースに「書き込み」をする機能を実装します。
いよいよ本格的なバックエンド開発の始まりです!
📝 今日のミニテスト
DB操作の基礎知識チェック!
Q1. データを1, 2, 3…と自動で採番してくれる機能は?
正解:AUTO_INCREMENT(オートインクリメント / A_I)
idカラムを作る時は、必ずこれにチェックを入れます。
Q2. 名前やメールアドレスなど、255文字以内の短い文字列に適した型は?
正解:VARCHAR(バーキャラ)
逆に、掲示板の本文のような長い文章には TEXT 型を使います。
Q3. データベースを作成する際、絵文字(🍣など)を使えるようにするための照合順序(文字セット)は?
正解:utf8mb4
普通の utf8 だと絵文字が保存できずに「?」になってしまうことがあります。迷ったら utf8mb4_general_ci を選びましょう。