[英]How to use the '?' symbol in a MySQL select in Ruby On Rails?
我需要在Rails 4.2應用程序中獲得MySQL全文搜索的針對性。 所以我需要在select子句中使用別名(相關性)。
問題是使用'?' 符號與where子句中相同,但在select中:
Model.select("articles.*, MATCH (name) AGAINST (? IN BOOLEAN MODE) AS pertinence", @search).where(...).order("pertinence DESC")
如果我做:
Model.select('articles.*, MATCH (name) AGAINST ("' + @search + '" IN BOOLEAN MODE) AS pertinence').where(...).order("pertinence DESC")
我可能在@search(無消毒)和SQL注入中出現引號問題。
那么如何使用Active Record執行這種查詢呢?
謝謝
您可以手動清理搜索參數。
search_param = ActiveRecord::Base::sanitize(@search)
Model.select("articles.*, MATCH (name) AGAINST (#{search_param} IN BOOLEAN MODE) AS pertinence").where(...).order("pertinence DESC")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.