Written by Kasumi

PHPを使ってデータベースに接続。フォームから入力されたデータをDBに登録する方法

PHPを使ってデータベース(本記事で扱うのはMySQL)に接続。

フォームから入力されたデータをデータベースに登録したい。

本記事ではこのような悩みを解決。

実装例を元に解説します。

PHPファイルを用意

入力フォーム用
input.php

DBへのデータ送信用

send.php

まず最初にPHPファイルを二つ用意します。

入力フォーム用のPHPファイル(input.php)。

データベース(以下DB)への送信・登録用のファイル(send.php)。

上記二つのファイルを使って、DBへデータ登録します。

入力フォームをHTMLで作成

<form method="post" action="send.php">
  <div>氏名</div>
  <input type="text" name="name">
  <div> メールアドレス</div>
  <input type="email" name="mail">
  <div> メッセージ本文</div>
  <textarea name="message"></textarea>
  <div>
    <input type="submit" value="送信">
  </div>
</form>

まずはHTMLのform・inputタグを使って簡易的な入力フォームをinput.phpに作成します。

formタグのmethod属性にpostaction属性に前章で作成したDB用send.phpへのパスを入力します。

inputタグで送信項目を作成。name属性を付与し任意の値を入れます。

MySQLにデータベース・テーブルを作成

MySQLに予めデータを入れるデータベース・テーブルを作成します。

MySQLの管理・操作を行うにはphpMyAdminが便利です。

phpMyAdminを使ってデータベース・テーブルを作成する方法は以下記事をご参照ください。
https://kasumiblog.org/phpmyadmin-database-table-create/

PHPを使ってDBにデータを送信・登録

<?php
try {
  //DB名、ユーザー名、パスワードを変数に格納
  $dsn = 'mysql:dbname=データベース名;host=ホスト名;charset=utf8';
  $user = 'ユーザー名';
  $password = 'パスワード';

  $PDO = new PDO($dsn, $user, $password); //PDOでMySQLのデータベースに接続
  $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //PDOのエラーレポートを表示

  //input.phpの値を取得
  $name = $_POST['name'];
  $mail = $_POST['mail'];
  $message = $_POST['message'];

  $sql = "INSERT INTO テーブル名 (name, mail, message) VALUES (:name, :mail, :message)"; // テーブルに登録するINSERT INTO文を変数に格納 VALUESはプレースフォルダーで空の値を入れとく
  $stmt = $PDO->prepare($sql); //値が空のままSQL文をセット
  $params = array(':name' => $name, ':mail' => $mail, ':message' => $message); // 挿入する値を配列に格納
  $stmt->execute($params); //挿入する値が入った変数をexecuteにセットしてSQLを実行

  // 登録内容確認・メッセージ
  echo "<p>名前: " . $name . "</p>";
  echo "<p>メールアドレス: " . $mail . "</p>";
  echo "<p>メッセージ: " . $message . "</p>";
  echo '<p>上記の内容をデータベースへ登録しました。</p>';
} catch (PDOException $e) {
  exit('データベースに接続できませんでした。' . $e->getMessage());
}
?>

PHPを使ってDBにデータを送信・登録するコード例です。

データベースの接続にはPDOを使います。

PDOの引数にそれぞれ以下データベース情報が入った変数を入れます。

$dsn
DB名、ホスト(ローカルの場合はlocalhostなど)


$user、$password
DBに接続するユーザー名とパスワード。

次に$_POSTを使って、input.phpのpostでフォーム送信されたデータを受け取ります。

引数にはinputタグのname属性に指定した値を入れます。

$sql変数にMySQLのINSERT文を使ってDBのテーブルにPOSTされた値を登録する内容を記述します。

$params変数にDBに登録するPOSTされた値の数だけ配列で格納します。

最後にexecute関数を使って、上記SQLを実行します。

以上でDBにフォームから送信された値を登録できました。

実際にDBのテーブルを確認。

カラムが挿入され、データが登録されているか確認しましょう。

まとめ

PHPを使ってデータベースに接続、フォームから入力されたデータをDBに登録する方法について紹介しました。

以上で解説を終わります。

目次

関連記事

PHP

【PHP】ファイルの更新日時でキャッシュを自動削除する方法

2022.06.26
2515
PHP

PHPで外部ファイルを読み込み、bodyタグ内のhtmlソースだけ取得する方法

2022.05.16
4775
PHP

PHPで特殊文字(<>)をhtmlと認識しないで表示する方法【htmlspecialcharsを使おう】

2022.08.06
2166
PHP

【PHP】例外が発生した場合の処理を実行する方法

2023.04.14
781