1

user_ID のリストが事前入力されたテーブル [user_id, name] があります。ユーザーが自分の user_id に対して名前を登録できるようにするフォームを作成したいと考えています。

基本的な HTML フォームは次のとおりです。

    <form action="" id="contact-form" class="form-horizontal" method="post">
          <label class="control-label" for="inputName">Enter Name</label>
          <input type="text" class="form-control  input-lge" name="inputName" id="inputName">       
            <input type="hidden"  class="form-control" id="hidUid" name="hidUid" value="<?php echo $reg_user_id?>">
<input type="submit" id="sub_button" class="btn btn-default btn-lg" value="Save"/>
</form>

$reg_user_id は、セッションによって設定された user_id 変数であることに注意してください。

これがPHPでの私の始まりです:

if(isset($_POST['hidUid']) && isset($_POST['inputName'])){
  $inputName=$_POST['inputName'];
  $inputUid=$_POST['hidUid'];
  if ($stmtint = $mysqli->prepare("SELECT user_email FROM users WHERE user_ID=?")) {
   $stmtint->bind_param("s", $inputUid);
   $stmtint->execute();
   $stmtint->bind_result($user_email);
   $stmtint->fetch();
   $stmtint->close();
   if($user_email != "" && $inputName !=""){
    $user_email="";
    if ($stmtint = $mysqli->prepare("UPDATE users SET name=? where user_ID=?")) {
     $stmtint->bind_param("ss", $inputName,$inputUid);
     $stmtint->execute();
     $stmtint->close();        

      echo "User saved successfully";
      exit;
    }
  }
  else{
    echo "Please enter correct Name and password";
    exit;
  }

}
}

私の問題は、フォームが正常に送信されることですが、データベースが更新されません。PHP 出力にもコンソール ログにもエラーはありません。何か案は?

4

1 に答える 1

1

エラーを表示したい場合は、これを試してください。

if(isset($_POST['hidUid']) && isset($_POST['inputName'])){

 $inputName = $_POST['inputName'];
 $inputUid = $_POST['hidUid'];

 if ($stmtint = $mysqli->prepare("SELECT user_email FROM users WHERE user_ID = ?")) {

   $stmtint->bind_param("s", $inputUid);

   if ($stmtint->execute()) {
     $stmtint->bind_result($user_email);
     $stmtint->fetch();
     $stmtint->close();
   }else{
     die("Error Message:".$mysqli->error);
   }

   if ($user_email != "" && $inputName != "") {

     $user_email="";

     if ($stmtint = $mysqli->prepare("UPDATE users SET name = ? where user_ID = ?")) {

       $stmtint->bind_param("ss", $inputName,$inputUid);

       if ($stmtint->execute()) {
         $stmtint->close();
         echo "User saved successfully";           
       }else{
         die("Error Message:".$mysqli->error);
       }

       exit;
     }

   }else{
   echo "Please enter correct Name and password";
   exit;
   }
 }
}
于 2013-10-09T23:18:37.800 に答える