使用主键和WHERE时出现SQL语法错误

Mar*_*tin 1 php sql

我正在尝试使用我的MySQL数据库UPDATE.我使用以下SQL代码:

$sql =  "UPDATE ToDo 
    SET Checked = -1
    WHERE Index = 1";
Run Code Online (Sandbox Code Playgroud)

当我使用此代码时,我收到以下错误消息:"您的SQL语法中有错误;请检查与您的MySQL服务器版本对应的手册,以便在第3行的'Index = 1'附近使用正确的语法"

但是当我使用时

$sql =  "UPDATE ToDo 
    SET Checked = -1
    WHERE Text = 'asdf'";
Run Code Online (Sandbox Code Playgroud)

一切正常.

我的数据库有一个名为"ToDo"的表,有3个列:索引(int,主键,auto_increment),Checked(bool)和Text(文本).

难道你不能"在哪里"主键或者我忘记了别的什么?

希望您能够帮助我.

Sab*_*lik 9

尝试添加反引号:

UPDATE ToDo 
    SET `Checked` = -1
    WHERE `Index` = 1";
Run Code Online (Sandbox Code Playgroud)

索引是保留字:

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html


nfe*_*ner 5

index是MySQL 的保留字.您需要通过添加这样的反引号来解析名称:

$sql =  "UPDATE ToDo 
SET Checked = -1
WHERE `Index` = 'asdf'";
Run Code Online (Sandbox Code Playgroud)