これまでwebアプリを作るために必要な情報を色々と記事にしてきました。
今回はwebアプリを作るのに必須なデータベースの使い方を見ていこうと思います。
作成済みのデータベース
まずは既にデータベースを作成していることを前提条件として、そこにアクセスしていくことを解説していきます。
作成するデータベースの詳細は以下の記事を参考にしてください。
データベース名はサイト名から適当につけます。今回は「何食べた?」って感じなのでwhateatとでもしておきましょうか。
作成するテーブルは記事の通り、usersテーブルとpostsテーブルです。それぞれ以下の画像のような構造です。
データ型やオートインクリメントなど別途解説したいこともあるので、そちらはまた別記事で解説させていただきます。
PHPからデータベースwhateatにアクセスする
ここ何年もフレームワークを利用してデータベースに接続していたので、素のPHPからデータベースに接続するのは本当に久しぶりです。
ただ最初の勉強としては知っておいて損はない情報なので、素のPHPから接続する方法を知っておくのは良いことだと
思います。
接続方法いくつかありますが、今回はPHP7でmysqli関数を利用するやり方でいこうと思います。
$db = new mysqli('localhost', 'root', '', 'whateat'); if ($db->connect_error){ echo '接続失敗'; } else { echo '接続成功'; }
この書き方だと各値が何のことなのかわかりづらいと思うので以下の様に定数を定義する形で書き換えますね。
define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASSWORD', ''); define('DB_NAME', 'whateat'); $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if ($db->connect_error){ echo '接続失敗'; } else { echo '接続成功'; }
XAMPPをデフォルトのまま利用している場合はDB_NAME以外はこのままでいけるはずです。違う場合はそれぞれの値を調整してください。
接続成功が表示されればひとまずデータベースへの接続はできたので準備完了です。
データの登録
それではデータの登録から試していこうと思います。usersテーブルにテストユーザーを入れてみます。
先ほど作成したPHPのコードに追加で以下のコードを書いてください。
$db->set_charset('utf8'); $query = "INSERT INTO users (user_id, mail, password, nickname, created_at) VALUES (NULL, 'test@test.com', 'test', 'あいうえお', '2019-09-28 00:00:00')"; $result = $db->query($query); if (!$result) { echo '登録失敗'; }else{ echo '登録成功'; }
実行してphpMyAdminから確認して以下のようなデータが入っていればOKです。
データの取得
データを登録したので、次はそのデータを取得してきて表示するということを試してみましょう。
$query = "SELECT * FROM users"; $result = $db->query($query); while ($row = $result->fetch_assoc()) { echo $row["user_id"] . ':' . $row["nickname"] . " "; }
usersテーブルのデータを全件取得して、取得したレコード分表示を繰り返すサンプルです。
データの更新
次にデータの更新のサンプルです。
$query = "UPDATE users SET nickname = 'かきくけこ' WHERE user_id = 1"; $result = $db->query($query); if (!$result) { echo '更新失敗'; }else{ echo '更新成功'; }
データの削除
続いて削除のサンプルです。
$query = "DELETE FROM users WHERE user_id = 1"; $result = $db->query($query); if (!$result) { echo '削除失敗'; }else{ echo '削除成功'; }
まとめ
以上、基本的なデータベースの扱い方を見てきました。はじめはどうせテスト環境なので色々試してみつつ、phpMyAdminなどで結果を確認しながら、こうするとこうなるのかということを勉強してみるといいと思います。
より実践的な方法は今後webアプリを作成する記事の中で書いていきます。