代码之家  ›  专栏  ›  技术社区  ›  aidan

perl:使用dbi占位符作为order by子句

  •  1
  • aidan  · 技术社区  · 15 年前

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

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

    有没有更好的方法可以做到这一点,而不仅仅是用经过验证的输入生成一个SQL字符串?

    1 回复  |  直到 15 年前
        1
  •  8
  •   Ivan Nevostruev    15 年前

    不,不能将占位符用于列名。从 DBI manual :

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

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