広告

PHPでMySQLへ入力フォームからデータ登録する方法

2019年9月20日

入力フォームからPHPを経由してMySQLへデータ登録する方法を紹介します。

入力フォームからPHPファイル経由でデータ登録するGIF

OYAKUN
OYAKUN
個人的にこの記事の内容は念願だったので、成功したときは嬉しかったです...

フォームに入力した値をPHPでMySQLへデータ登録するコツ

入力フォームからPHPとMySQLへデータ登録するには、

  1. 受け取った値を登録する対象のテーブル
  2. 入力フォームのhtmlファイル
  3. 入力フォームから受け取った値をMySQLで繋ぐPHPファイル

といったhtml・PHP・データベースの連携をはかります。

1. MySQLに値を登録するテーブルを準備する

はじめにMySQLの中に入力フォームの値を登録するテーブルを準備します。

フォームの値を登録する先のテーブル

各フィールドには、

  • idはオートインクリメント
  • 部品名はTEXT型
  • 登録日はDATETIME型

といった設定を行っています。

テーブル作成の詳細は以下記事に記してます↓

MySQLにデータベーステーブルを作成する手順

今回はデータベース「test」の中に、テーブル「部品登録」を作成し、そこにフォームに入力された値を登録していきます。

フォームの値をPHPから登録するためのテーブル

作成したテーブルのソース↓

CREATE TABLE `test`.`部品登録` ( `id` INT NOT NULL AUTO_INCREMENT , `部品名` TEXT NOT NULL , `登録日` DATETIME NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

2. 入力フォームのhtmlファイルを作成する

次に「入力フォーム」となるhtmlファイルを作成します。

htmlファイルで作成した入力フォーム

補足
説明や補足入力フォームのmethodは"post"、textareaのnameは"buhin"に設定しました。

今回は以下入力フォームを作成しました↓

<main>
<h2>入力フォーム</h2>
<!-- 入力フォームを作成 -->
<form action="form.php" method="post">
<textarea name="buhin" cols="30" rows="10" placeholder="ここに記入"></textarea><br>
<button type="submit" name="button">登録する</button>
</form>
<!-- 入力フォームここまで -->
</main>

CSSを当ててないので簡素ですが、動くことを優先にこのまま進めていきます!

3. PHPファイルでhtmlとMySQLを接続する

最後に入力フォームから受け取った値をPHPファイルへ渡してMySQLへ登録します。

PHPファイルでフォームの値を取得した結果

先の記事で紹介した「PDO」や「exec」を利用して、MySQL接続しhtmlファイルで取得した値をテーブルへ登録します。

今回は以下PHPファイルを作成しました。

<body>
<header>
<h1>PHP</h1>
</header>
<main>
<h2>登録結果!</h2>
<pre>
<?php
try{
$db = new PDO('mysql:dbname=test;host=localhost;charset=utf8','root','root');
$count = $db->exec('INSERT INTO 部品登録 SET 部品名="'. $_POST['buhin'] .'",登録日 = NOW()');
echo $count . "件のデータを登録しました!";
} catch(PDOException $e){
echo 'DB接続エラー' . $e->getMessage();
}
?>
</pre>
</main>
</body>

こちらもCSSは当ててないので簡素ですが、動けばOKなのでこのままいきます

$_POSTの補足とは

$_POSTは、HTTP POSTメソッドで送信された値を取得する変数です。

PHPで入力フォームからMySQLへデータ登録の実行テスト

実際にhtmlの入力フォームに適当な値を入力して実行してみます。

入力フォームに適当な値を入力

成功するとPHPファイルに遷移して「1件のデータを登録しました!」と画面上に表示されます。

PHPファイルでレコードの1件登録が成功した表示

エラーだとどうなるの?

'DB接続エラー'が表示されます。

ほんとに登録できたか、最初に作成したテーブル「部品登録」を表示してみると...

MySQLにレコードが1件追加された様子

きちんとフォームに入力した値が、レコードとして追加登録されていますね。

ついに、入力フォームからMySQLへデータ登録を行うことができました...!

入力フォームからPHPファイル経由でデータ登録成功したGIF

OYAKUN
OYAKUN
感無量っす(泣)

エラーが表示されてないけどデータ登録できないときは

ここまで順調にいけば良いのですがもし、

  • エラーが出てないのにレコード登録されてない

ということがあれば、以下内容を試してみてください。

試してみてほしい4つの内容↓

  1. テーブルの[再描画]をクリック
  2. html(またはphp)ファイルを1回閉じる
  3. 閉じたファイルをもう1回開く
  4. テーブルやファイル画面をリロードする
OYAKUN
OYAKUN
上記のいずれかでデータ登録ができるはずっ...!

まとめ

入力フォームからPHP経由でMySQLへデータ登録する方法を紹介しました。

ひと口に「フォームからデータベースへ登録する」とはいっても、今まで学んだ内容をきちんと網羅しておかないと仕組みがわからないし再現できないな〜と。

自分自身そこまで覚えてないので、自分の記事を見返しながら勉強しています(苦笑)

OYAKUN
OYAKUN
次回は 安全にデータベースへデータ登録する方法について紹介します!
DBへ安全な登録
MySql-prepare-php-2-768x432
【MySQL】PHPでprepareを使って安全にデータベースへ登録する方法

前回はフォームに入力した値をPHPでデータベースへ登録する方法を紹介しました。 しかし! 入力される値によってはSQLを ...

続きを見る

関連記事:【MySQL】PHPでqueryを使ってデータベースの値を取得する方法
関連記事:【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)
関連記事:【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも