簡體   English   中英

如何使用“?” 在Ruby On Rails中選擇MySQL中的符號?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM