PHPでボタンクリック時の処理として、MySQLにデータを登録したいのですが、登録完了のメッセージが出ているものの、MySQL側で確認してみると登録ができておりません。
テーブル名:Test
+----+------------------------+------------------------+
| ID | beforeFile | afterFile |
+----+------------------------+------------------------+
insert.php
1<?php 2 3$dsn = 'mysql:host=*****;dbname=Test;charset=utf8;unix_socket=/mysql.sock'; 4$user = 'user'; 5$password = 'pass'; 6 7if (!empty($_POST)) { 8 $dbh = new PDO($dsn, $user, $password); 9 10 $before = isset($_POST['beforeFile']) ? $_POST['beforeFile'] : ''; 11 $after = isset($_POST['afterFile']) ? $_POST['afterFile'] : ''; 12 13 $stmt = $dbh->prepare('insert into Test(beforeFile, afterFile) value (?, ?)'); 14 15 $dbh = null; 16 //メッセージのセット 17 $msg = '登録完了'; 18} 19?> 20 21<head> 22 <title>登録画面</title> 23 <meta http-equiv="content-type" charset="UTF-8"> 24</head> 25 26<html> 27 28 <form action="insert.php" method="post"> 29 <p>before</p> 30 <input type="file" name="beforeFile" accept="image/jpg, image/png" required> 31 <p>after</p> 32 <input type="file" name="afterFile" accept="image/jpg" readonly> 33 34 <p><input type="submit" value="登録"></p> 35 </form> 36 37 <?php if ($msg): ?> 38 <p><?=$msg?></p> 39 <?php endif; ?> 40</html>
固定の値でボタンをクリックすると、登録されたのを確認できました。
どこが原因なのか教えていただきたいです。
追記
ご回答いただいた内容を反映しました。
ボタンクリック時にデータベースに1行追加されていることを確認できたのですが、自動生成される
IDのカラム以外は空白で登録されておりました。
INSERT文で"beforeFile"と"afterFile"を指定しているので間違っていないと思っていたのですが。。。
原因がありましたら教えていただきたいです。
PHP
1<?php 2 3$dsn = 'mysql:host=*****;dbname=Test;charset=utf8;unix_socket=/mysql.sock'; 4$user = 'user'; 5$password = 'pass'; 6 7if (!empty($_POST)) { 8 $dbh = new PDO($dsn, $user, $password); 9 10 $before = isset($_POST['beforeFile']) ? $_POST['beforeFile'] : ''; 11 $after = isset($_POST['afterFile']) ? $_POST['afterFile'] : ''; 12 13 $stmt = $dbh->prepare('insert into Test(beforeFile, afterFile) value (?, ?)'); 14 15 $stmt->bindValue(1, $before); 16 $stmt->bindValue(2, $after); 17 $stmt->execute(); 18 19 $dbh = null; 20 //メッセージのセット 21 $msg = '登録完了'; 22} 23?> 24 25<head> 26 <title>登録画面</title> 27 <meta http-equiv="content-type" charset="UTF-8"> 28</head> 29 30<html> 31 32 <form action="insert.php" method="post"> 33 <p>before</p> 34 <input type="file" name="beforeFile" accept="image/jpg, image/png" required> 35 <p>after</p> 36 <input type="file" name="afterFile" accept="image/jpg" readonly> 37 38 <p><input type="submit" value="登録"></p> 39 </form> 40 41 <?php if ($msg): ?> 42 <p><?=$msg?></p> 43 <?php endif; ?> 44</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/07 06:51
2021/12/07 06:53
退会済みユーザー
2021/12/07 09:22 編集
2021/12/08 01:20
2021/12/08 01:55
2021/12/08 02:07
2021/12/08 02:49