【PHP応用-1】Excelとは違う!Web開発の心臓部「MySQL」データベース入門

PHP基礎編では、データは変数(メモリ)やテキストファイルに保存していました。
しかし、本格的なWebアプリを作るなら「データベース」が必須です。

今回は、世界で最も使われているデータベース「MySQL(マイエスキューエル)」を使って、掲示板用のデータ保管庫を作ります。

データベースって何?

一言で言えば「超・高性能なExcel」です。

  • Excel: 人間が見て編集するためのもの。
  • データベース: プログラムが高速に書き込んだり、検索したりするためのもの。

Webアプリでは、1つの大きな「データベース」の中に、目的別の「テーブル(表)」を作って管理します。

管理ツール「phpMyAdmin」を開こう

データベースは本来、「黒い画面」でコマンドを打って操作するものですが、初心者にはハードルが高すぎます。
そこで、ブラウザからクリックだけで操作できる「phpMyAdmin(ピーエイチピー・マイアドミン)」を使います。

起動方法

  • XAMPPの人: コントロールパネルの「MySQL」の右にある「Admin」ボタンを押す。
  • MAMPの人: スタートページの「Tools」メニューから「phpMyAdmin」を選ぶ。
  • または、ブラウザで http://localhost/phpmyadmin/ にアクセス。

こんな画面が開けば成功です!

ステップ1:データベース(箱)を作る

まずは、一番外側の大きな箱を作ります。

  1. 画面左上の「新規作成(New)」をクリック。
  2. データベース名に bbs_app と入力。(BBS=掲示板の意味)
  3. 照合順序(文字コード)は utf8mb4_general_ci を選択。
    (※これを選ぶと絵文字も保存できるようになります)
  4. 「作成」ボタンをクリック。

ステップ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をチェックすると自動で設定されます。

データを手動で入れてみよう

テーブルができたら、試しに手動でデータを入れてみましょう。

  1. 上部メニューの「挿入(Insert)」をクリック。
  2. id: 空欄でOK(自動で入るから)。
  3. username: 「テスト太郎」
  4. comment: 「データベース面白い!」
  5. created_at: カレンダーから適当な日時を選ぶ。
  6. 「実行」ボタンをクリック。

その後、「表示(Browse)」メニューを押して、今入れたデータが表示されていれば成功です!

まとめ

  • データベース操作は phpMyAdmin が便利。
  • まずはデータベース(箱)を作り、次にテーブル(表)を作る。
  • id には必ず A_I(自動連番) をつける。
  • 文字なら VARCHARTEXT を使う。

これでデータの入れ物が完成しました。
次回は、PHPプログラムを使って、このデータベースに「書き込み」をする機能を実装します。
いよいよ本格的なバックエンド開発の始まりです!

📝 今日のミニテスト

DB操作の基礎知識チェック!

Q1. データを1, 2, 3…と自動で採番してくれる機能は?

正解:AUTO_INCREMENT(オートインクリメント / A_I)
idカラムを作る時は、必ずこれにチェックを入れます。

 

Q2. 名前やメールアドレスなど、255文字以内の短い文字列に適した型は?

正解:VARCHAR(バーキャラ)
逆に、掲示板の本文のような長い文章には TEXT 型を使います。

 

Q3. データベースを作成する際、絵文字(🍣など)を使えるようにするための照合順序(文字セット)は?

正解:utf8mb4
普通の utf8 だと絵文字が保存できずに「?」になってしまうことがあります。迷ったら utf8mb4_general_ci を選びましょう。

タイトルとURLをコピーしました