PDO 语句错误 #1064

Posted

技术标签:

【中文标题】PDO 语句错误 #1064【英文标题】:PDO statement error #1064 【发布时间】:2015-03-07 11:13:36 【问题描述】:

我正在尝试从 PDO 报价和 PDO 准备并执行,我的查询是这样的:

$sql = 'SELECT * FROM nav_top1 WHERE id_top = (SELECT top_fr FROM nav_top WHERE top_fr = :rub ORDER BY top1_order ASC';
echo $sql.'<br>';
$query = $connexion->prepare($sql);
$query->bindParam(':rub', $rub, PDO::PARAM_INT);
$query->execute();
$list = $query->fetchAll();

foreach ($list as $rs) 
$top1_fr = $rs['top1_fr'];

echo $top1_fr;


但我得到一个错误:

[2015 年 3 月 7 日星期六 14:08:05] [错误] [客户端 105.156.126.211] php 警告:PDOStatement::execute(): SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 9 行的 /home/www/Fashion/fashion.php 中的第 1 行 '' 附近使用正确的语法,referer...

提前致谢

【问题讨论】:

我忘了关闭 ),谢谢 【参考方案1】:

缺少大括号?

top1_order ASC)

【讨论】:

【参考方案2】:

$sql = 'SELECT * FROM nav_top1 WHERE id_top = (SELECT top_fr FROM nav_top WHERE top_fr = :rub ORDER BY top1_order ASC';

你的大括号不见了。

 $sql = 'SELECT * FROM nav_top1 WHERE id_top = (SELECT top_fr FROM
 nav_top WHERE top_fr = :rub ORDER BY top1_order ASC');

【讨论】:

以上是关于PDO 语句错误 #1064的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]

mysql数据库出现错误代码1064是啥原因?

MySQl 错误 #1064 存储过程 IF ELSE 带有多个 SELECT 语句

SQLSTATE [42000]:语法错误或访问冲突:sql select 语句中的 1064

PDO wordpress 查询

使用 PDO 准备好的语句 MySQL 错误