簡體   English   中英

如何從Ruby on Rails轉義MYSQL查詢?

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

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