MySQL语法变异

时间:2013-05-31 02:51:06

标签: mysql

我正在从在线教程学习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.')

我希望有人解释为什么会出现这种情况,以及如何识别正确的语法 - 或者链接到某些文档,这些文档可以让初学者理解这种区别。 (在我的学习中,我不太可能在这一点上遵循手册。)感谢您提供的任何帮助。

2 个答案:

答案 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