PHP

投稿データの保存にデータベースを使う

  1. 最終更新日:
  2. 公開日:

「ひと言掲示板」のデータの管理を、テキストファイルからデータベースで行うように変更していきます。

この記事のポイント

  • MariaDBはMySQL完全互換のデータベース
  • MySQL同様にphpMyAdminを使ってデータベースを管理できる

データベースでデータを管理する

前回までに掲示板を便利にするための仕組みとして書き込みメッセージの表示、未入力バリデーション、データのサニタイズといった機能を付けてきました。

今までは、掲示板に投稿されたデータは「message.txt」というテキストファイルに保存してきました。
ファイルを使ってデータを管理する方法はシンプルなため手軽で便利です。
ただ、この方法だとデータが溜まってくると読み込みや検索に手間がかかってしまったり、複数のユーザーによる同時の書き込み、機能追加による取り扱いデータの変更対応がやりづらいなど運用上のデメリットもあります。

データベースであれば、膨大なデータがあっても高速でアクセス&検索することができ、同時書き込みも「トランザクション」という仕組みで対応することができます。
取り扱いデータの変更も最初に定義する「テーブル」に変更を行うことで最小限の手間で対応可能です。

そこで今回からは、データの管理をデータベースで行うように変更していきましょう。

「ひと言掲示板を作る」の概要については「ひと言掲示板を作る」をご覧ください。
デモはこちら

前回までに作成したコードはこちら:Github

MariaDBを使う

データベースには、オープンソースでもっとも有名な「MariaDB」を使います。
MariaDB公式サイト

以前はオープンソースのデータベースといえば「MySQL」が一般的でした。
しかしオラクルが開発元の「MySQL AB」を買収して商標権・著作権を所有することになったため、MySQL ABの創設者がMySQLの完全互換データベース「MariaDB」として派生し、現在も開発が進められているという背景があります。

元々が完全互換を謳っているため、基本的な操作では2つのデータベースの違いを意識することなく使用できるようになっています。
以上のような背景がありつつ、今回はMariaDBを使用していきます。

以降はMariaDBがすでにインストールされていることを前提に進めていきます。

phpMyAdminをインストールする

データベースの管理は「phpMyAdmin」を使用します。
phpMyAdmin公式サイト

サイトにアクセスしたら、ページ右上にある「Download ...」のボタンを押すとzipファイルがダウンロード開始されます。

phpMyAdminサイトの表示例

ダウンロードしたファイルを解凍し、サイトの公開ディレクトリに配置すればすぐに使用できます。
解凍して作成されるディレクトリ名はバージョンなどが入っていて長いので、「phpMyAdmin」など短くしておくと便利です。

サーバーの公開ディレクトリが仮に「/var/www/html」、phpMyAdminのフォルダを「phpMyAdmin」とすると、「/var/www/html/phpMyAdmin」になるようなイメージです。
先ほどの「/var/www/html」のURLが「http://localhost」の場合は、「http://localhost/phpMyAdmin」でアクセスすると次のようなログインページが表示されます。

phpMyAdminのログインページ

もしログインページが表示されない場合は、「phpMyAdmin」ディレクトリの直下にある「config.sample.inc.php」を複製し、ファイル名を「config.inc.php」に変更してください。
その後、「config.inc.php」を開いて下記のホスト情報「localhost」を環境にあわせて変更します。

config.inc.php

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * phpMyAdmin sample configuration, you can use it as base for
 * manual configuration. For easier setup you can use setup/
 *
 * All directives are explained in documentation in the doc/ folder
 * or at <https://docs.phpmyadmin.net/>.
 *
 * @package PhpMyAdmin
 */

---- 省略 ----

/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

---- 省略 ----

もしこれでも動作しない場合は、MariaDBが起動していることを確認してください。

ユーザー名、パスワードを入力してログインし、次のようなページが表示されたら正常に動作しています。

ログイン後のダッシュボード

今回はここまでになります。
次回はphpMyAdminからひと言掲示板の「データベース」と、投稿データを入れる「テーブル」を作成していきます。

前のページ投稿されたデータをサニタイズする

次のページ掲示板のデータベースとテーブルを作成する

記事一覧

  1. ひと言掲示板を作る
  2. メッセージの入力フォームを作る
  3. メッセージのデータを受け取る
  4. ファイルにデータを保存する
  5. ファイルからデータを読み込む
  6. 投稿完了メッセージを表示する
  7. 投稿の未入力バリデーションをつける
  8. 投稿されたデータをサニタイズする
  9. 投稿データの保存にデータベースを使う
  10. 掲示板のデータベースとテーブルを作成する
  11. 投稿データをデータベースに登録する
  12. データベースからデータを取得する
  13. コードを整理する
  14. セッションで表示名の入力を省略する
  15. 管理ページを作成する
  16. ログインページを作る
  17. 投稿データをCSV形式でダウンロードする
  18. 投稿データをダウンロードする件数を指定する
  19. 投稿メッセージの編集ページを作る
  20. メッセージを編集する機能を実装する
  21. 投稿メッセージの削除ページを作る
  22. 管理ページにログアウトを実装する
  23. リロードによる多重投稿を防止する
  24. 投稿に文字数制限を設定する

前の記事

記事一覧

次の記事