PHPプログラミング

最終更新日:
公開日:

ワークショップ

ひと言掲示板を作る(9)

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

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

この記事のポイント

  • 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」など短くしておくと便利です。

サーバーの公開ディレクトリが仮に「/var/www/html」、phpMyAdminのフォルダを「phpMyAdmin」とすると、「/var/www/html/phpMyAdmin」になるようなイメージです。
先ほどの「/var/www/html」のURLが「http://localhost」の場合は、「http://localhost/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からひと言掲示板の「データベース」と、投稿データを入れる「テーブル」を作成していきます。