[英]How to escape for MYSQL queries from Ruby on Rails?
在MYSQL數據庫中搜索Rails 2.3.14應用程序時,我需要適當地轉義搜索字符串,以便搜索包含單引號(撇號)的字符串。 最好的方法是什么? 我正在使用mysql
gem,以防萬一。
使用mysql
gem時,您獲得了Mysql.escape_string()
方法。 使用方法如下:
search_terms = Mysql.escape_string("it's working!")
conditions = [ "table1.name LIKE '%#{search_terms}%'" ]
# use conditions for MYSQL query as appropriate
Rails 引用字符串如下:
# Quotes a string, escaping any ' (single quote) and \ (backslash) characters.
def quote_string(s)
s.gsub(/\\/, '\&\&').gsub(/'/, "''") # ' (for ruby-mode)
end
您可以使用ActiveRecord的quote
方法(例如ActiveRecord::Base.connection.quote("string with ' apostrophe")
),但ActiveRecord的查詢方法已經為您轉義了SQL。 例如:
a = "string with ' apostrophe"
ModelName.where("field1 = ?", a)
將“帶'撇號'的字符串更改為”字符串帶''撇號“
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.