我知道这很简单,但很烦人,
为什么这样做:
    $query = $pdo->prepare('SELECT index FROM active_notifications WHERE direction = ">"');这样做是可行的:
    $query = $pdo->prepare('SELECT trigger_price FROM active_notifications WHERE direction = ">"');但这不会!:
    $query = $pdo->prepare('SELECT trigger_price, index FROM active_notifications WHERE direction = ">"');我得到了这些垃圾:
无法连接到数据库。原因:异常'PDOException‘与消息'SQLSTATE42000:语法错误或访问冲突: 1064您有一个错误的语法;
发布于 2013-10-08 15:56:40
您不应该使用诸如“index”之类的保留词作为列的名称(或表或架构,或任何需要标识符的名称)。
很可能,您的数据库能够从第一个语句的上下文中推断“index”作为列的名称,但是选择多个列会导致它模棱两可。
不管怎样,这不是真正的问题。您不希望使用诸如“索引”之类的保留词作为标识符,否则会发生奇怪的事情。尝试更改列的名称。
发布于 2013-10-08 16:04:32
您可以通过在SQL语句中使用`转义MySQL保留词来引用它们,即:
SELECT trigger_price, 
`index`
FROM active_notifications 
WHERE direction = ">"有关更多信息,请阅读MySQL文档。
https://stackoverflow.com/questions/19252412
复制相似问题