$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。
提前致谢。
答案 0 :(得分:1)
你忘记了:
array( 'order'=>$order,
'orderby'=>$orderby,
'limit'=>$limit
)
应该是
array( ':order'=>$order,
':orderby'=>$orderby,
':limit'=>$limit
)
答案 1 :(得分:0)
似乎$ stmt-> execute()会在$ limit值附近添加引号,因此200将是' 200'导致错误。
建议的解决方案是使用bindParam() 点击此处查看更多信息http://php.net/manual/en/pdostatement.execute.php