2012-05-06 113 views
0

我試圖每次語句爲true時更新我的​​數據庫中的1字段。我不確定如何做到這一點。用我下面的代碼我不知道這個問題(雖然很多谷歌搜索):更新字段由1 PDO

  1. 如何添加1現有字段值(投票表決= + 1)
  2. 將與地方聯合聲明bindParam。

我沒有得到任何錯誤消息,雖然它不起作用。我究竟做錯了什麼?

我的代碼看起來像這樣(的$ id變量是正確的已打印出來這一點,它有「權利」的價值,$胸徑也設置與正確連接):

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

回答

1

不要引用地點持有人。

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

另外,不要var_dump($stmt->execute),看看你會得到什麼:如果說到時候「插入」您使用的查詢值必需的PDO會爲你做的。如果它是布爾值false,那麼查詢失敗。您還假設準備調用已成功並嘗試執行它。永遠不要假設DB操作已經成功。即使SQL語法是完美的,也有太多的其他原因讓事情炸燬而不檢查。

+0

謝謝!這就像一個魅力! – Fredrik