2009-12-07 51 views
1

我可以在准备好的语句中使用占位符来查询我的查询的order by子句吗?Perl:为ORDER BY子句使用DBI占位符

我猜测不是,因为我试过了,它似乎没有工作,但它也没有抛出任何错误,这似乎很奇怪。

有没有更好的方法来做到这一点,除了生成一个SQL字符串验证输入?

回答

8

不,您不能使用占位符作为列名称。从DBI manual

对于大多数驱动程序,占位符不能用于任何会阻止数据库服务器验证语句并为其创建查询执行计划的语句元素。

但是你仍然可以在Perl中构造查询。在这种情况下,使用quote_identifier方法引用列名称。

+4

不要在Perl中排序。数据库可以做得更好。 – friedo 2009-12-07 20:33:38

+0

@friedo:谢谢你的提示。我已经删除了该部分 – 2009-12-07 21:55:22