當在MYSQL數據庫中搜索Rails 2.3.14應用程序時,我需要適當地轉義搜索字符串,以便搜索包含單引號(撇號)的字符串。什麼是最好的方法來做到這一點?我使用mysql
寶石,以防萬一。如何從Ruby on Rails轉義MYSQL查詢?
回答
您可以使用ActiveRecord的quote
方法(例如ActiveRecord::Base.connection.quote("string with ' apostrophe")
),但是ActiveRecord的的查詢方法已經逃脫你的SQL你。例如:
a = "string with ' apostrophe"
ModelName.where("field1 = ?", a)
將改變 「字符串'撇號」 到 「字符串 '' 撇號」
使用mysql
寶石時,您獲得方法Mysql.escape_string()
。使用方法如下:
search_terms = Mysql.escape_string("it's working!")
conditions = [ "table1.name LIKE '%#{search_terms}%'" ]
# use conditions for MYSQL query as appropriate
哪裏是這樣的Postgres的? – 2014-05-06 19:48:44
Rails的quotes strings如下:
# Quotes a string, escaping any ' (single quote) and \ (backslash) characters.
def quote_string(s)
s.gsub(/\\/, '\&\&').gsub(/'/, "''") # ' (for ruby-mode)
end
這適用於postgresql – 2014-05-06 19:51:53
這很酷,謝謝 – jahrichie 2017-05-05 00:40:05
- 1. Ruby on rails MYSQL查詢
- 2. Ruby on Rails MySQL查詢混淆
- 3. MySQL的加入查詢Ruby on Rails的
- 4. 如何在Ruby on Rails或Mongodb查詢中進行ruby查詢?
- 5. 轉義字符在Ruby on Rails的下劃線查詢
- 6. 如何將此sqlite查詢轉換爲Ruby on Rails中的postgresql查詢?
- 7. 用Ruby on Rails進行查詢
- 8. Ruby On Rails 3 ...構建查詢塊
- 9. Ruby on Rails SQlite 3數據庫查詢
- 10. Ruby on Rails - 查詢傳遞參數
- 11. Ruby on Rails的查詢幫助
- 12. 的Ajax查詢和Ruby on Rails
- 13. 使用Ruby on Rails忽略MySQL查詢中的重音
- 14. ruby on rails + xampp + mysql(windows 7)
- 15. Ruby On Rails上的MySQL Gem
- 16. Ruby on rails mysql問題
- 17. Ruby on Rails,MySQL和雪豹
- 18. Ruby on rails $ mysql配置
- 19. Ruby on Rails/Activerecord mySQL建模
- 20. 如何在Ruby on Rails中自動轉義HTML?
- 21. Ruby on Rails自定義ID
- 22. Ruby on rails:如何使用新查詢更新視圖
- 23. 如何在Ruby on Rails中編寫任意SQL查詢?
- 24. 如何在Ruby on Rails中有效地寫這個查詢?
- 25. 如何在Ruby on Rails中使用LIKE查詢
- 26. 如何在此關聯中使用聯合查詢 - Ruby on Rails
- 27. Ruby on Rails如何獲取最後一個查詢?
- 28. 如何從Ruby的拒絕on Rails的
- 29. Ruby on Rails - 從數組值中查詢ActiveRecord
- 30. Ruby on Rails的,我應該從查詢控制器
這對於短的查詢很好,但對於更復雜的查詢,它實際上更容易直接使用SQL。我正在查看一個案例,我在五個不同的表中搜索,並且很難跟蹤哪個變量與使用此語法的查詢部分相匹配。 – joanwolk 2012-07-23 08:51:23
查看範圍。他們讓你把你的查詢分解成邏輯塊,然後根據需要鏈接它們。它更清潔 – Angelo 2012-07-23 13:11:21
我們確實有範圍。另外:有問題的應用程序也使用原始SQL查詢而不是Rails SQL方法作爲性能考慮事項,因此我不會將此代碼切換回ActiveRecord方法。 – joanwolk 2012-07-23 16:02:29