Perl:为ORDER BY子句使用DBI占位符

aid*_*dan 1 perl prepared-statement dbi

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

我猜不是,因为我尝试了,它似乎没有用,但它也没有抛出任何错误,这看起来很奇怪.

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

Iva*_*uev 8

不,您不能使用占位符作为列名.来自DBI手册:

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

但你仍然可以在perl中构造查询.在这种情况下,使用quote_identifier方法来引用列名.

  • 不要在Perl中排序.数据库可以做得更好. (4认同)