php - > MYSQL查询无法弄清楚错误#1064出了什么问题

时间:2011-11-03 19:58:56

标签: php mysql mysql-error-1064

我正在尝试在下面的查询表中插入一些值:

Insert into 
auditlog (
          event,
          desc,
          userid,
          useripaddress,
          audittype
)
VALUES (
         'User Authenticated', 
         'Useradminsuccessfully logged in to the system', 
         '1', 
         '127.0.0.1','1'
) 

它给我以下错误:  #1064 - 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'desc,userid,useripaddress,audittype'附近使用正确的语法VALUES('User Authenticated','User admin su'在第1行

但是当我使用PHPMYAdmin运行插入时,它会插入一个值,生成的查询是

INSERT INTO 
     `auditlog`(
              `event`, 
              `desc`, 
              `userid`, 
              `useripaddress`, 
              `audittype`) 
     VALUES (
              'User Authenticated', 
              'Useradminsuccessfully logged in to the system', 
              '1', 
              '127.0.0.1','1'
     ) 

我看到的唯一区别是我不相信需要的报价。我不明白我哪里出错了,而且现在我的头脑坏了:):))

2 个答案:

答案 0 :(得分:4)

desc周围需要反引号,因为它是reserved word

INSERT INTO auditlog (event, `desc`, userid, useripaddress, audittype)
VALUES (
    'User Authenticated',
    'Useradminsuccessfully logged in to the system',
    '1',
    '127.0.0.1',
    '1'
) 

如果您不确定它们是否为保留字,则在其他列名称周围添加反引号也没有任何害处。

答案 1 :(得分:0)

以下是保留且需要反对的词语列表:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html