繁体   English   中英

基本SQL语法,MAMP,PHP和MySQL

[英]Basic SQL syntax, MAMP, PHP & MySQL

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

为什么这样做:

    $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 = ">"');

我得到这个垃圾:

无法连接到数据库。 原因:消息“ SQLSTATE [42000]”的异常“ PDOException”:语法错误或访问冲突:1064 SQL语法有错误;

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

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

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

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

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

阅读MySQL文档以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM