2013-05-13 130 views
-3
$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。选择语句PDO错误SQLSTATE [42000]:语法错误或访问冲突:1064

在此先感谢。

+0

感谢您的链接。 – bruhbruh 2013-05-13 07:19:03

回答

1

你忘:这里

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

应该

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

谢谢,我已经做了这个改变,但我仍然得到同样的错误。 这是更正后的代码: '$ 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->执行( 阵列(\t ':为了'=> $顺序, ':排序依据'=> $的OrderBy, \t ':极限'=> $极限) \t \t);' – bruhbruh 2013-05-13 06:21:32

+0

@talentedunicorn显示完整的错误。 – 2013-05-13 06:22:33

+0

以下是完整的错误: '数据库错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法中有错误;检查与你的MySQL服务器版本相对应的手册,在第1行''''附近使用正确的语法' – bruhbruh 2013-05-13 06:26:14

相关问题