1

所以这是罪魁祸首

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/

我完全感到困惑。

4

3 回答 3

1

这些查询不起作用,因为index它是一个保留字。您可以使用反引号引用该名称以告诉 MySQL 它应该被视为名称而不是保留字:

mysql_query("UPDATE coordrating SET `index` = '2' WHERE rating = 2");

mysql_query("UPDATE coordrating SET submissions = '2' WHERE `index` = 2");
于 2012-07-01T18:01:49.410 回答
1

试试这个方法:

UPDATE `coordrating` SET `index` = '2' WHERE `rating` = 2

反引号用于分隔表或字段名,因为有时表或字段名可以匹配 MySQL 运算符。

于 2012-07-01T18:00:32.280 回答
0

您的“索引”列(一种最佳做法是使用id作为用作主键的列的名称),如您的屏幕截图中所示,是主键。Primary key的一个成本约束是唯一的,因此您可能会有 2 行具有“rating = 2”,因此您的查询将由于唯一约束而失败。

另一个最佳实践是避免更改主键值,使用另一列。

于 2012-07-01T18:20:47.420 回答