2017-11-01 34 views
0

したがって、既存のテーブルにテキストを挿入しようとしています。テキストフィールドにテキストを挿入してsubmitを押すと、挿入したい情報を表示している他のページでvar_dumpを取得しますが、それをデータベースなどに送信しません。私が間違っていることを手伝ってくれることを願っています。データベースに挿入されていないクエリを挿入する

これは私のINSERTクエリ

public function insertComment($commentaar, $idBestelling){ 
    try{ 
     $stmt = $this->_db->prepare('UPDATE `apotheek`.`Bestelling` SET `commentaar` = :commentaar WHERE `Bestelling`.`idBestelling` = :idBestelling;'); 
      if($stmt->execute(array(
      ':commentaar' => $commentaar, 
      ':idBestelling' => $idBestelling))){ 
       return true; 
      } else { 
       return false; 
      } 
    } catch(PDOException $e) { 
     echo '<p class="bg-danger">'.$e->getMessage().'</p>'; 
    } 
} 

であり、ここで、あなたはWebページからコードを見つけることができます。

<div class="row"> 
<form role="form" method="post" action="/?content=bezorgen"> 
<div class="col-xs-12 col-sm-12 col-md-12 loginborder"> 
    <h2 class="loginhead">Bestelling no. <?php print($data['idBestelling']); ?> <?php ($data['isSpoed'] == '0') ? print('') : print('deze bestelling is met SPOED') ?></h2> 
    <hr> 
    <div class="row col-6 col-md-6 col-sm-12 col-xs-12"> 
     <div class="loginhead"> 
      <h3>Commentaar</h3> 
      <hr> 
     </div> 
     <div> 
     <textarea rows="9" cols="74" name="commentaar"><?php print($data['commentaar']); ?></textarea> 
     </div> 
    </div> 
    <div class="row registerbtn"> 
     <div class="col-xs-12 col-md-12" style="text-align:right;"><input type="submit" name="submit" value="Verstuur" class="btn btn-lg" tabindex="5"></div> 
    </div> 
</div> 
</form> 

とPHP

$data = $user->getBestellingPatient($_POST['idBestelling']); 
if(isset($_POST['submit'])){ 
    $user->insertComment($_POST['commentaar'], $_POST['idBestelling']); 
}; 
+1

あなたのコードには挿入されていません。これが正しいと確信して、あなたが更新しようとしているIDが存在しますか? – ChrisBint

+0

recoordはすでに存在し、コメントには 'NULL'の値がありますので、ウェブページに入力したテキストにnullを更新したい – Kenneth

+0

ところで、idBestellingというIDのフォーム/入力要素はありません。あなたは$ _POST ['idBestelling']で何を得ようとしていますか? – Samy

答えて

-1

あなたはこれを試してみてください:

$stmt = $this->_db->query('UPDATE `apotheek`.`Bestelling` SET `commentaar` = :commentaar WHERE `Bestelling`.`idBestelling` = :idBestelling;'); 
+0

それは助けません – Kenneth

0

私はあなたがすでにデータベースに存在しているコメントを更新しようとしていると思います。あなたはポストのIDを保持するためのフォームで隠しフィールドを追加する必要があります

(主に自動DBからIDをインクリメント)

だからときにtextarea要素

<input type='hidden' name='idBestelling'<?php print($data['idBestelling']); ?>/> 

下の下の要素を追加します。あなたはIDを更新していますので、フォームの一部として渡されます。その後、あなたはそれを受け取ることができます。$ _POST

+0

私はそれを行う場合、私はvar_dumpでidBestellingを見ることができます、それは私が選択した順序からのIDを示していますが、それはデータベース内の何かを変更しません。 – Kenneth

+0

それはポイントの権利ですか?あなたは値を挿入していません..あなたはポストidBestellingを更新しようとしているが、私は自動的にインクリメントの値がありますか?だから変わらないでしょう。それはあなたがdbの正しい行を更新していることを確認します。 – Samy

+0

それは本当です。私はあなたが言っていることを理解しています。これは正しいidを使用していることを確認することです。しかし、私が更新しようとする価値は、むしろNULL、またはデータベースで変更されたものと同じままです。 – Kenneth

関連する問題