我可以在准备好的语句中使用占位符来查询我的查询的order by子句吗?
我猜不是,因为我尝试了,它似乎没有用,但它也没有引起任何错误,这看起来很奇怪。
除了生成带有验证输入的SQL字符串之外,还有更好的方法吗?
答案 0 :(得分:8)
不,您不能使用占位符作为列名。来自DBI manual:
对于大多数驱动程序,占位符不能用于语句的任何元素,这会阻止数据库服务器验证语句并为其创建查询执行计划。
但是你仍然可以在perl中构造查询。在这种情况下,使用quote_identifier
方法引用列名。