php - MySql + InnoDB + PHP 单引号判别?

标签 php mysql innodb

好的,我最近将一些表转换为 InnoDB 存储引擎,每当我在 INSERT 语句的列列表中使用单引号 ' 时,我都会遇到错误:

INSERT INTO 'Table' ('Col1', 'Col2') VALUES ('Val1', 'Val2')

当我厌倦了使用 phpMyAdmin 来生成正确的语句时,它看起来几乎是一样的,所以我将它粘贴到我的应用程序中,并且它起作用了。然后我的下一个陈述有同样的错误,所以我开始怀疑。经过一番尝试后,我发现问题在于查询需要反引号而不是单引号,但不是全部。

INSERT INTO `Table` (`Col1`, `Col2`) VALUES ('Val1', 'Val2')

有效,所以它不像 MySql 不理解单引号。这里发生了什么?我也不能像以前那样使用 MyISAM(即:Table(Col1, Col2))不引用列

最佳答案

这是因为单引号表示字符串文字,而反引号表示数据库/表/列标识符转义。

删除反引号会导致错误,因为 TABLE 是保留字,因此为了将其用作表名,您必须包含反引号。

关于php - MySql + InnoDB + PHP 单引号判别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160243/

相关文章:

php - 为什么我从两个假定类似的算术运算中得到不同的结果?

php - 让 PhpStorm 将我的参数识别为一个类

php - 通过 ajax 或直接输出的行业标准代码 PHP 和 JSON 数据

mysql - 是否可以添加具有其他列平均值的列?

sql - 在 Symfony 中创建包含 JOIN 和 RAND() 的 MySQL 查询时遇到问题

mysql - 创建像 IF MySQL 函数这样的自定义 DQL 但它不起作用 - [Symfony 2]

mysql - 如何让Slick建表语句使用InnoDB

mysql - 事务和主从复制

javascript - 如何将 php 添加到 url?

mysql - 安装WAMP,文件备份MySQL数据库with/InnoDB tables=FILE COPY ok?