php mysqlを使用して、データベースにデータを保存したいと考えています。
流れとしては
idをデータベースに登録 → ログイン → 質問の回答をデータベースに保存
を想定しています。
現在ログインまでは成功しているのですが、データがアップデートされないままでいます。
特にエラーは出ず、次のページへのデータの受け取りも問題はなさそうです。
where の後のid='".$_SESSION['sub_id'].'" の部分の書き方は、ネットで色々と調べながら書きましたが正直合っているのかわかっていません。
ただ、この部分を消してもアップデートされなかったので、少なくともここだけの問題ではないかなと考えています。
コードの誤字もないはずなので、完全に行き詰ってしまっています。
どなたかアドバイス等いただけるとありがたいです。
よろしくお願い致します。
php
1<?php 2ini_set("display_errors", "On"); 3session_start(); 4session_regenerate_id(true); 5if(isset($_SESSION['login'])==false) 6{ 7 echo 'ログインされていません。'; 8 echo '<a href="../new/sub_login.html">ログイン画面へ</a>'; 9 exit(); 10} 11else 12{ 13 $_SESSION['sub_id']; 14} 15?> 16<!doctype html> 17<html lang="ja"> 18<head> 19<meta charset="utf-8"> 20<style type="text/css"> 21body{ 22 margin-top:100px; 23 margin-left:10%; 24 margin-right:10%; 25} 26table{ 27 border-collapse:collapse; 28 border:2px solid black; 29 width:100%; 30} 31td,th,tr{ 32 border:1px solid black; 33} 34th,td{ 35 padding:20px 10px; 36} 37th{ 38 widrh:30%; 39} 40td{ 41 width:70%; 42} 43han{ 44 font-size:12px; 45 color:red; 46} 47.button{ 48 margin-top:50px; 49 margin-bottom:100px; 50 width:80px; 51 height:50px; 52 font-size:20px; 53 background-color:#EFEFEF; 54 margin-left:45%; 55} 56.button:hover{ 57 background-color:lightgray; 58} 59label{ 60 margin-right:50px; 61} 62input[type="text"]{ 63 width:200px; 64 height:20px; 65 font-size:18px; 66} 67img{ 68 widht:80px; 69 height:50px; 70 display:inline-block; 71} 72.color1{ 73 float:left; 74 padding-left:5s%; 75} 76.color2{ 77 float:right; 78 padding-right:30%; 79} 80h2{ 81 text-align:center; 82} 83</style> 84</head> 85<body> 86<h2>あなたの属性について伺います。</h2> 87<form method="post" action="srs.php"> 88<table> 89<tr> 90 <th>性別</th> 91 <td><label><a>男性</a><input type="radio" name="danjo" value="1" required></label> 92 <label><a>女性</a><input type="radio" name="danjo" value="2"></label> 93 <label><a>その他</a><input type="radio" name="danjo" value="3"></label></td> 94</tr> 95<tr> 96 <th>年齢</th> 97 <td><han>半角入力<han></br> 98 <input type="text" name="age" required></td> 99</tr> 100<tr> 101 <th>学年</th> 102 <td><label><a>1回生</a><input type="radio" name="gakunen" value="1" required></label> 103 <label><a>2回生</a><input type="radio" name="gakunen" value="2"></label> 104 <label><a>3回生</a><input type="radio" name="gakunen" value="3"></label> 105 <label><a>4回生</a><input type="radio" name="gakunen" value="4"></label></td> 106</tr> 107<tr> 108 <th>連絡用メールアドレス</th> 109 <td><han>半角入力</han></br> 110 <input type="text" name="mail" required></td> 111</tr> 112<tr> 113 <th>好きな色</th> 114 <th><div class="color1"><label><input type="radio" name="likecolor" value="1" requied><a>赤</a></label></br> 115 <img src="red.png"> </div> 116 <div class="color2"><label><input type="radio" name="likecolor" value="2"><a>青</a></label></br> 117 <img src="blue.png"></div></th> 118</tr> 119</table> 120<input type="submit" value="次へ" class="button"> 121</form> 122</body> 123</html>
前のページで適当な値を入れた結果、こちらのページ上には
0array(5) { [0]=> string(1) "1" [1]=> string(2) "21" [2]=> string(1) "1" [3]=> string(3) "aaa" [4]=> string(1) "1" }
といった結果が表示されており、それ以外にエラー等は出ておりません。
php
1<?php 2ini_set("display_errors", "On"); 3session_start(); 4session_regenerate_id(true); 5if(isset($_SESSION['login'])==false) 6{ 7 echo 'ログインされていません。'; 8 echo '<a href="../new/sub_login.html">ログイン画面へ</a>'; 9 exit(); 10} 11else 12{ 13 $_SESSION['sub_id']; 14} 15 16try 17{ 18 19$danjo = $_POST['danjo']; 20$age = $_POST['age']; 21$gakunen = $_POST['gakunen']; 22$mail = $_POST['mail']; 23$likecolor = $_POST['likecolor']; 24 25$danjo = htmlspecialchars($danjo); 26$age = htmlspecialchars($age); 27$gakunen = htmlspecialchars($gakunen); 28$mail = htmlspecialchars($mail); 29$likecolor = htmlspecialchars($likecolor); 30 31$dsn = 'mysql:dbname=aaa;host=localhost;port=3306;charset=utf8'; 32$user = 'aaa'; 33$password = ''; 34$dbh = new PDO($dsn, $user, $password); 35$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 36 37$dbh->beginTransaction(); 38 39$sql = "UPDATE user_data SET danjo=?, age=?, gakunen=?, mail=?, likecolor=? WHERE id='".$_SEIION['sub_id']."'"; 40$stmt = $dbh->prepare($sql); 41$data[] = $danjo; 42$data[] = $age; 43$data[] = $gakunen; 44$data[] = $mail; 45$data[] = $likecolor; 46$stmt->execute($data); 47 48echo $stmt->rowCount(); 49 50var_dump($data); 51 52$dbh = null; 53 54$dbh->commit(); 55} 56 57catch(Exception $e) 58{ 59 $dbh->rollBack(); 60 echo $e->getMessage(); 61 62} 63 64?>