0

我知道这很简单,但它真的很烦人,

为什么会这样:

    $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' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;

4

2 回答 2

2

您不应使用保留字如“索引”作为列(或表、模式或任何需要标识符的名称)的名称。

很可能,您的数据库能够从第一条语句的上下文中推断出“索引”作为列的名称,但是选择多个列会导致它不明确。

无论如何,这不是真正的问题。您不想使用保留字如“索引”作为标识符,否则会发生奇怪的事情。尝试更改列的名称。

于 2013-10-08T15:56:40.093 回答
0

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

SELECT trigger_price, 
`index`
FROM active_notifications 
WHERE direction = ">"

阅读MySQL 文档了解更多信息。

于 2013-10-08T16:04:32.707 回答