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属性にpost、action属性に前章で作成した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に登録する方法について紹介しました。
以上で解説を終わります。