プログラミング初心者です。
mysqliでデータベース(phpMyadminから参照)の更新を試みています。
■問題点
PHPファイルから、データベースの情報を更新しようとしているのですが更新できない
■やろうとしていること
データベースの更新、ユーザリストの情報更新
名前は変えず、誕生日と住所は変えられるようにしたい
■現状
・ブラウザ上も、エディター上もエラーがでていない
・var_dumpで調べたところ変数の内容(入力フォームより取得したもの)は合っている
・check2.phpの//クエリ実行内のechoも、更新したい情報が正しくでてくる
・データベースから情報を引き出せるところも確認できているので、データベース自体のの接続の問題でもなさそう
以下、データ更新かけるページ(check.php)と更新後にでるページ(check2.php)
check.phpの更新機能部分
1$stmt = $mysqli->prepare("SELECT * FROM name_list WHERE name=?"); 2if ($stmt) { 3 //プレースホルダへ実際の値を設定する 4 $name = $_POST['name']; 5 $stmt->bind_param('s', $name); 6 7 $birth=$_POST['birth']; 8 $adress=$_POST['adress']; 9 10 //クエリ実行 11 $stmt->execute(); 12 13 //結果変数のバインド 14 $stmt->bind_result($name,$birth,$adress); 15 // 値の取得 16 $stmt->fetch(); 17 18 //ステートメント切断 19 $stmt->close(); 20
check.phpの入力フォーム部分
1<form action="check2.php" method="post"> 2 <input type="hidden" name="name" value="<?=htmlspecialchars($name, ENT_QUOTES, 'UTF-8')?>"> 3 <?php echo $name."の情報を更新してください。<br><br>";?> 4 <?php echo "誕生日<br>";?> 5 <input type="date" name="" value="<?=$birth?>"><br><br> 6 <?php echo "ホームページ<br>";?> 7 <input type="text" name="adress" value="<?=$adress?>"><br><br> 8 <input type="submit" value="変更する"> 9 </form>
check2.php
1$stmt = $mysqli->prepare("UPDATE name_list SET birth=?,adress=? WHERE name=?"); 2if ($stmt) { 3 //プレースホルダへ実際の値を設定する 4 $birth = $_POST['birth']; 5 $adress=$_POST['adress']; 6 $name=$_POST['name']; 7 $stmt->bind_param('sss', $birth,$adress,$name); 8 9 //クエリ実行 10 if($stmt->execute()){ 11 echo "誕生日はは「".$birth."」<br>"; 12 echo "住所はは「".$adress."」<br>"; 13 echo "に変更しました。"; 14 }else{ 15 echo $stmt->errno . $stmt->error; 16 } 17 //ステートメント切断 18 $stmt->close();
■質問
何か考えられる原因はありますでしょうか?
また、当方が見落としているプログラミング上の書き間違いなどありますでしょうか?
■参考ページ
リンク内容
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/30 07:52
2019/01/30 08:04 編集
2019/01/30 08:18
2019/01/30 08:21
2019/01/30 08:44
2019/01/30 09:04 編集
2019/01/30 09:38
2019/01/30 10:06