入力フォームからPHPを経由してMySQLへデータ登録する方法を紹介します。
「PHPのqueryメソッドでMySQLのデータを取得する方法」を理解しておくとスムーズです!
-
【MySQL】PHPでqueryを使ってデータベースの値を取得する方法
PHPでqueryを使ってMySQLにあるデータベースから特定の値を抜き取る方法を記します。 補足 PHPでMySQL ...
続きを見る
フォームに入力した値をPHPでMySQLへデータ登録するコツ
入力フォームからPHPとMySQLへデータ登録するには、
- 受け取った値を登録する対象のテーブル
- 入力フォームのhtmlファイル
- 入力フォームから受け取った値をMySQLで繋ぐPHPファイル
といったhtml・PHP・データベースの連携をはかります。
1. MySQLに値を登録するテーブルを準備する
はじめにMySQLの中に入力フォームの値を登録するテーブルを準備します。
各フィールドには、
- idはオートインクリメント
- 部品名はTEXT型
- 登録日はDATETIME型
といった設定を行っています。
テーブル作成の詳細は以下記事に記してます↓
今回はデータベース「test」の中に、テーブル「部品登録」を作成し、そこにフォームに入力された値を登録していきます。
作成したテーブルのソース↓
CREATE TABLE `test`.`部品登録` ( `id` INT NOT NULL AUTO_INCREMENT , `部品名` TEXT NOT NULL , `登録日` DATETIME NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
2. 入力フォームの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へ登録します。
先の記事で紹介した「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件のデータを登録しました!」と画面上に表示されます。
エラーだとどうなるの?
'DB接続エラー'が表示されます。
ほんとに登録できたか、最初に作成したテーブル「部品登録」を表示してみると...
きちんとフォームに入力した値が、レコードとして追加登録されていますね。
ついに、入力フォームからMySQLへデータ登録を行うことができました...!
エラーが表示されてないけどデータ登録できないときは
ここまで順調にいけば良いのですがもし、
- エラーが出てないのにレコード登録されてない
ということがあれば、以下内容を試してみてください。
試してみてほしい4つの内容↓
- テーブルの[再描画]をクリック
- html(またはphp)ファイルを1回閉じる
- 閉じたファイルをもう1回開く
- テーブルやファイル画面をリロードする
まとめ
入力フォームからPHP経由でMySQLへデータ登録する方法を紹介しました。
ひと口に「フォームからデータベースへ登録する」とはいっても、今まで学んだ内容をきちんと網羅しておかないと仕組みがわからないし再現できないな〜と。
自分自身そこまで覚えてないので、自分の記事を見返しながら勉強しています(苦笑)
-
【MySQL】PHPでprepareを使って安全にデータベースへ登録する方法
前回はフォームに入力した値をPHPでデータベースへ登録する方法を紹介しました。 しかし! 入力される値によってはSQLを ...
続きを見る
関連記事:【MySQL】PHPでqueryを使ってデータベースの値を取得する方法
関連記事:【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)
関連記事:【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも