【问题标题】:Select statement PDO error SQLSTATE[42000]: Syntax error or access violation: 1064 [duplicate]选择语句 PDO 错误 SQLSTATE [42000]:语法错误或访问冲突:1064 [重复]
【发布时间】:2013-05-07 02:52:36
【问题描述】:
$orderby = 'title';
$order = 'ASC';

$stmt = $conn->prepare('SELECT f.id, title, description, release_year, first_name, last_name FROM film AS f, film_actor AS fa JOIN actor AS a WHERE fa.actor_id = a.actor_id AND fa.film_id = f.film_id ORDER BY :orderby :order LIMIT :limit');
$stmt->execute(
    array(  'order'=>$order, 
            'orderby'=>$orderby, 
            'limit'=>$limit
        )
    );

我在尝试运行此查询时收到标题中描述的错误。我试图找到一种调试输出的方法,但失败了。我会很感激帮助。 PS:我正在使用 PHP 中的 PDO 学习 SQL。

提前致谢。

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    你忘了:这里

    array(  'order'=>$order, 
            'orderby'=>$orderby, 
            'limit'=>$limit
        )
    

    应该是

    array(  ':order'=>$order, 
            ':orderby'=>$orderby, 
            ':limit'=>$limit
        )
    

    【讨论】:

    • 谢谢,我已经做出了改变,但我仍然遇到同样的错误。这是更正后的代码:$stmt = $conn->prepare('SELECT f.id, title, description, release_year, first_name, last_name FROM film AS f, film_actor AS fa JOIN actor AS a WHERE fa.actor_id = a.actor_id AND fa.film_id = f.film_id ORDER BY :orderby :order LIMIT :limit'); $stmt->execute( array( ':order'=>$order, ':orderby'=>$orderby, ':limit'=>$limit) );
    • @talentedunicorn 显示完整错误。
    • 这是完整的错误:DB Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''200'' at line 1
    • @talentedunicorn 您在查询中分配了200 的位置?我看不到。
    • @YogeshSuthar,我认为 200 是 limit,因为他忘记将 , 放在两个 order by 列之间
    【解决方案2】:

    似乎 $stmt->execute() 将在 $limit 值周围添加引号,因此 200 将是 '200' 导致错误。

    建议的解决方案是使用 bindParam() 在这里查看更多信息http://php.net/manual/en/pdostatement.execute.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2022-01-25
      • 2018-10-09
      • 2011-05-31
      相关资源
      最近更新 更多