所以这是罪魁祸首
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/
我完全不知所措。
试试这个方式:
UPDATE `coordrating` SET `index` = '2' WHERE `rating` = 2
反引号用于分隔表或字段名称,因为有时表或字段名称可以匹配MySQL运算符。
这些查询不起作用,因为index
是一个保留字。您可以使用反引号引用该名称,以告诉MySQL应将其视为名称而不是保留字:
mysql_query("UPDATE coordrating SET `index` = '2' WHERE rating = 2");
mysql_query("UPDATE coordrating SET submissions = '2' WHERE `index` = 2");
您的"索引"列(一种最佳做法是使用 id 作为用作主键的列的名称),在您的屏幕截图中可见,是 pimary 键。主键的一个约束是唯一的,因此很可能有 2 行具有"rating = 2",因此您的查询将由于唯一约束而失败。
另一个最佳做法是避免更改主键值,使用另一列。