據我所知,應該是可以做到在Rails中的以下內容:Rails的預處理語句與SELECT_ALL
ActiveRecord::Base.connection.select_all("SELECT MONTH(created) AS month, YEAR(created) AS year FROM orders WHERE created>=$1 AND created<=$2 GROUP BY month ORDER BY month ASC",nil,[['created',1],['created',2]])
,但可悲的是,這是行不通的。無論我嘗試使用哪種格式,$1
和$2
都不會被來自綁定數組的相應值替換。
還有什麼我應該照顧的?
感謝您的幫助。實際上,我想將$ 1和$ 2替換爲[['created',1],['created',2]],就像一個常用的準備好的sql語句。但無論我做什麼,它都不起作用。在一個正常的rails模型語句中,像... where(),它可以工作,但是使用base.connection,我無法弄清楚,如何做到這一點...... –
這是一本關於如何創建SQL注入漏洞的教科書示例在你的應用程序中 - 在插值之前引用你的變量,或使用綁定變量。 –