最終更新日:
公開日:
ワークショップ
ひと言掲示板を作る(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からひと言掲示板の「データベース」と、投稿データを入れる「テーブル」を作成していきます。
記事一覧
- ひと言掲示板を作る(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) 投稿に文字数制限を設定する