2012-05-06 7 views
0

私は、文が真であるたびにデータベースのフィールドを1で更新しようとしています。私はこれを行う方法がわかりません。私の次のコードで、私はこの問題についてはよく分からない(グーグルの多くが):フィールドを1 PDOで更新

  1. どのように既存のフィールド値を1を追加する(投票=投票+ 1)の文と組み合わせる
  2. ザ・bindParam。

エラーメッセージは表示されませんが、動作しません。私は間違って何をしていますか?

この($ IDの変数が正しい、これをプリントアウトして、それが「正しい」値は、$ DBHはまた、右の接続と設定されている)のような私のコードを見て

 $stmt = $dbh->prepare("UPDATE rating SET vote = vote+1 WHERE rel_id_product = ':id'"); 
     $stmt->bindParam(':id', $id, PDO::PARAM_STR); 
     $stmt->execute(); 

答えて

1

はしないでくださいプレースホルダーを引用してください。 var_dump($stmt->execute)を行うと、あなたが得るものを見、また

... WHERE rel_id_product = :id 
          ^^^--- no quotes 

:必要であれば、それはあなたがクエリで使用している値を「挿入」するには時間が来るときPDOはあなたのためにそれを行います。ブール値がfalseの場合、クエリは失敗しています。また、準備呼び出しが成功し、それに関係なく実行しようとしていると仮定しています。決してDB操作が成功したと仮定しないでください。たとえSQL構文が完璧であっても、それをチェックしないために爆発する他の多くの理由があります。

+0

ありがとうございます!それは魅力のように働いた! – Fredrik

関連する問題