Rails 2.3.14 アプリの MYSQL データベースを検索する場合、単一引用符 (アポストロフィ) を含む文字列を検索できるように、検索文字列を適切にエスケープする必要があります。これを行う最善の方法は何ですか?それが重要な場合に備えて、私はmysql
宝石を使用しています。
質問する
13081 次
3 に答える
10
Railsは文字列を次のように引用します。
# Quotes a string, escaping any ' (single quote) and \ (backslash) characters.
def quote_string(s)
s.gsub(/\\/, '\&\&').gsub(/'/, "''") # ' (for ruby-mode)
end
于 2013-08-07T18:14:04.887 に答える
8
mysql
gemを使用すると、 method が得られますMysql.escape_string()
。次のように使用します。
search_terms = Mysql.escape_string("it's working!")
conditions = [ "table1.name LIKE '%#{search_terms}%'" ]
# use conditions for MYSQL query as appropriate
于 2012-07-20T14:53:53.813 に答える
6
ActiveRecordのquote
メソッド(例ActiveRecord::Base.connection.quote("string with ' apostrophe")
)を使用できますが、ActiveRecordのクエリメソッドはすでにSQLをエスケープしています。例えば:
a = "string with ' apostrophe"
ModelName.where("field1 = ?", a)
「stringwith'apostrophe」を「stringwith''apostrophe」に変更します
于 2012-07-21T05:29:17.183 に答える