所以这是罪魁祸首
mysql_query("UPDATE coordrating SET submissions = '2' WHERE rating = 2");
现在这个工作正常,除非我尝试使用索引(这是我的表的索引)值。 所以这不起作用:
mysql_query("UPDATE coordrating SET index = '2' WHERE rating = 2");
或
mysql_query("UPDATE coordrating SET submissions = '2' WHERE index = 2");
这是我数据库结构的截图
http://imageshack.us/photo/my-images/694/problemmysql.png/
我完全不知所措。
答案 0 :(得分:2)
这些查询不起作用,因为index
是reserved word。您可以使用反引号来引用该名称,以告诉MySQL它应该被视为名称而不是保留字:
mysql_query("UPDATE coordrating SET `index` = '2' WHERE rating = 2");
mysql_query("UPDATE coordrating SET submissions = '2' WHERE `index` = 2");
答案 1 :(得分:1)
尝试这种方式:
UPDATE `coordrating` SET `index` = '2' WHERE `rating` = 2
反引号用于分隔表或字段名称,因为有时table或fieldname可以匹配MySQL运算符。
答案 2 :(得分:0)
您的“索引”列(最佳做法是使用 id 作为用作主键的列的名称),如屏幕截图中所示,是pimary键。 主键的一个成本是唯一,因此您可能会有2行具有“rating = 2”,因此您的查询将因唯一约束而失败。< / p>
另一个最佳做法是避免更改主键值,使用另一列。