2017-09-28 9 views
1

私のことをもう一度:) 私はほとんど私のプロジェクトのtheresをもう一度残しています。 pdoを使用してデータベースの値を更新できません。 これは私のスクリプト PDOユーザー情報の更新

<a 
href="?UpdateUser=' .$ID. '" 
class="btn btn-sm btn-icon btn-pure btn-default on-default edit-row" 
data-original-title="Bearbeiten" 
ref="" data-toggle="modal" data-target="#EditUser"> 
<i class="icon wb-edit" aria-hidden="true"></i></a> 

<div class="modal fade" id="EditUser" aria-hidden="false" aria-labelledby="EditUserModal" 
       role="dialog" tabindex="-1"> 
        <div class="modal-dialog modal-simple modal-center"> 
        <form class="modal-content" method="POST" role="form" action=""> 
         <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
          <span aria-hidden="true">×</span> 
         </button> 
         <h4 class="modal-title" id="EditUserModal">Benutzer bearbeiten</h4> 
         </div> 
         <div class="modal-body"> 
         <div class="row"> 
          <div class="col-xl-12 form-group"> 
          <p><b>Username</b></p> 
          <input type="text" class="form-control" name="username" value="'.$username.'"> 
          </div> 
          <div class="col-xl-4 form-group"> 
           <p><b>Vorname</b></p> 
          <input type="text" class="form-control" name="vorname" value="'.$vorname.'"> 
          </div> 
          <div class="col-xl-8 form-group"> 
          <p><b>Nachname</b></p> 
          <input type="text" class="form-control" name="nachname" value="'.$nachname.'"> 
         </div> 
         <div class="col-xl-8 form-group"> 
         <p><b>Email</b></p> 
          <input type="email" class="form-control" name="email" value="'.$email.'"> 
          </div> 
          <div class="col-xl-4 form-group"> 
          <p><b>TelefonNr.</b></p> 
          <input type="text" class="form-control" name="handy" value="'.$handy.'"> 
          </div> 
          <div class="col-xl-12 form-group"> 
          <p><b>Admin</b></p> 
          <input type="text" class="form-control" name="admin" value="'.$admin.'"> 
          </div> 
          <div class="col-md-12 float-right"> 
          <button class="btn btn-primary btn-outline" data-dismiss="modal" type="submit">Speichern</button> 
          </div> 
         </div> 
         </div> 
        </form> 
        </div> 
       </div> 
      </td> 
          </tr>'; 
      } 
      if(isset($_POST['UpdateUser'])) 
      { 
       if($_POST['UpdateUser']) 
       { 
       $stmt = $odb->execute("UPDATE Account SET username = '$username' , vorname = '$vorname', nachname = '$nachname', email = '$email', handy = '$handy', admin = '$admin' WHERE id=? "); 
       } 
       echo "<meta http-equiv='refresh()' content='0'>"; 
      } 

は私が間違ってクエリをやっているのですか?なぜ更新していないのですか? ページにエラーが表示されませんが、値はページの更新や更新を行っていません。

+0

'WHERE id =?'ここで変数をバインドしていますか? –

+0

@JayBlanchard私には分かりませんが、すべてのことに慣れていません。/ – Escobar

答えて

0

あなたはこのように、executeprepareを使用する必要があります。

$query = 'UPDATE Account SET 
      username = :username, 
      vorname = :vorname, 
      nachname = :nachname, 
      email = :email, 
      handy = :handy, 
      admin = :admin 
      WHERE id = :id'; 

$stmt = $pdo->prepare($query); 

$stmt->execute(array(
     ':username' => $username, 
     ':vorname' => $vorname, 
     ':nachname' => $nachname, 
     ':email' => $email, 
     ':handy' => $handy, 
     ':admin' => $admin, 
     ':id'  => $id 
)); 

はまた、代わりにクエリ文字列内の書き込み変数の、すべての入力値のプレースホルダを使用することをお勧めします。

そして今、私はこれを考え出し:

あなたは、メソッドPOSTでデータを送信するためのフォームを使用して、アップデートの実行を開始する$_POST['UpdateUser']を読み取ろうとするが、その形でUpdateUserと呼ばれるフィールドがないされています。 フォームにその値を追加するか、その他のフィールドを使用してif (isset($_POST['UpdateUser']))を変更する必要があります。

+0

に従うための指示とガイドがあれば、あなたのソリューションは本当にきれいに見えますが、将来その構造に固執しようとするべきですが、それでも、同じことが起こっている[ここ](https://gyazo.com/6e982c2aca2fff2eb72e7f307e4d6d72) – Escobar

+0

あなたはコード全体を投稿できますか?最初に何かが見つからないようです –

+0

ここに[pastebin](https://pastebin.com/TGETMxkH)に生のコードをアップロードしました – Escobar

関連する問題