首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基本SQL语法、MAMP、PHP和MySQL

基本SQL语法、MAMP、PHP和MySQL
EN

Stack Overflow用户
提问于 2013-10-08 15:48:45
回答 2查看 499关注 0票数 0

我知道这很简单,但很烦人,

为什么这样做:

代码语言:javascript
运行
复制
    $query = $pdo->prepare('SELECT index FROM active_notifications WHERE direction = ">"');

这样做是可行的:

代码语言:javascript
运行
复制
    $query = $pdo->prepare('SELECT trigger_price FROM active_notifications WHERE direction = ">"');

但这不会!:

代码语言:javascript
运行
复制
    $query = $pdo->prepare('SELECT trigger_price, index FROM active_notifications WHERE direction = ">"');

我得到了这些垃圾:

无法连接到数据库。原因:异常'PDOException‘与消息'SQLSTATE42000:语法错误或访问冲突: 1064您有一个错误的语法;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-08 15:56:40

您不应该使用诸如“index”之类的保留词作为列的名称(或表或架构,或任何需要标识符的名称)。

很可能,您的数据库能够从第一个语句的上下文中推断“index”作为列的名称,但是选择多个列会导致它模棱两可。

不管怎样,这不是真正的问题。您不希望使用诸如“索引”之类的保留词作为标识符,否则会发生奇怪的事情。尝试更改列的名称。

票数 2
EN

Stack Overflow用户

发布于 2013-10-08 16:04:32

您可以通过在SQL语句中使用`转义MySQL保留词来引用它们,即:

代码语言:javascript
运行
复制
SELECT trigger_price, 
`index`
FROM active_notifications 
WHERE direction = ">"

有关更多信息,请阅读MySQL文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19252412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档