2014-10-10 121 views
-1

我嘗試更新數據庫中的一行,但我無法做到這一點。這裏是我的SQL:無法更新數據庫中的行

$sql = "UPDATE `voting_nomination_counter` 
SET `quantity`=quantity+1 
WHERE `nid` = '$nid' 
AND nominee = '$nominee'"; 

我懷疑問題就在這裏 - AND nominee = '$nominee'";,因爲當我從查詢中刪除所有這些作品和更新的罰款。請幫助。

+2

如果你沒有得到一個SQL錯誤(假設你已經顯示錯誤)輸出的SQL查詢字符串,看看是否你期望的變量。 – Fluffeh 2014-10-10 07:03:19

+0

檢查$ nominee中是否有任何價值 – 2014-10-10 07:11:42

回答

0

我解決這個問題,如果我想更新WHERE string = string我只需要使用此語句UPDATE table SET field = REPLACE(field, 'string', 'anothervalue') WHERE field LIKE '%string%';,謝謝你們)

0

試試這個:

$sql = "UPDATE voting_nomination_counter SET quantity=quantity+1 WHERE nid = '$nid' AND nominee = '$nominee'"; 
+1

除了您刪除了原始SQL中的反引號之外,這裏是否有任何區別? – Fluffeh 2014-10-10 07:06:50

0

@excluded_once看起來你能!解決你的問題。所以將來不要直接將變量名稱用於SQL字符串。始終使用db_query或db_select,然後始終將變量綁定到SQL中,這將有助於防止SQL注入和其他攻擊。