我正在从在线教程学习Php / MySQL(不是我希望你能看到它,而是作为参考:http://www.youtube.com/watch?v=rJ3tDQfJt4k)
我通过phpMyAdmin 3.5.2.2使用MySQL 5.5.27
在本教程中,给出了这段代码(并且有效):
INSERT INTO 'posts' ('title', 'contents') VALUES('this is the first post', 'Yes it is.')
但是,我收到此错误消息: “#1064 - 您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获得正确的语法...”
这种语法(我通过试验和错误找到)对我有用:
INSERT INTO posts (title, contents) VALUES('this is the first post', 'Yes it is.')
我希望有人解释为什么会出现这种情况,以及如何识别正确的语法 - 或者链接到某些文档,这些文档可以让初学者理解这种区别。 (在我的学习中,我不太可能在这一点上遵循手册。)感谢您提供的任何帮助。
答案 0 :(得分:3)
MySQL标识符(列名和表名)可选地由反引号“`”包围,而不是单引号。视频有点模糊,我可以看出为什么你会误解它们。 尝试:
INSERT INTO `posts` (`title`, `contents`) VALUES('this is the first post', 'Yes it is.')
答案 1 :(得分:0)
默认情况下,标识符可以使用反引号进行转义,而不是单引号。默认情况是由于sql_mode mysqld以。
开头如果为ANSI_QUOTES配置sql_mode,则可以使用双引号。
我在DBA StackExchange中写过这篇文章:How to convert MySQL Keyword to normal column