MySQL

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

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

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

oyakun
個人的にこの記事の内容は念願だったので、成功したときは嬉しかったです...
 補足
PHPのqueryメソッドでMySQLのデータを取得する方法」を理解しておくとスムーズです!

フォームに入力した値を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
感無量っす(泣)

 

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

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

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

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

 

試してみてほしい4つ↓

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

 

まとめ

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

 

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

 

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

 

oyakun
次回は安全にデータベースへデータ登録する方法について紹介します!

>【MySQL】PHPでqueryを使ってデータベースの値を取得する方法

>【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)

>【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも



  • この記事を書いた人
  • 最新記事
oyakun

oyakun

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

Copyright© OYAKUDACHI.XYZ , 2019 All Rights Reserved.