2014-10-10 123 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注入和其他攻击。