繁体   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