2009-12-07 55 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