當在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查詢
- 3. 查詢Ruby on Rails?
- 4. ruby on rails查詢
- 5. MySQL的加入查詢Ruby on Rails的
- 6. Ruby on Rails MySQL查詢混淆
- 7. Ruby on rails轉換爲sql查詢
- 8. 將SQL查詢轉換爲Ruby on Rails
- 9. 如何在Ruby on Rails或Mongodb查詢中進行ruby查詢?
- 10. Ruby on Rails API查詢
- 11. Ruby on Rails的查詢
- 12. 查詢Ruby on Rails的
- 13. Ruby on Rails,SQL Server查詢
- 14. SQL查詢Ruby On Rails
- 15. 轉義字符在Ruby on Rails的下劃線查詢
- 16. 如何將SQL查詢轉換爲Ruby on Rails
- 17. 如何將此sqlite查詢轉換爲Ruby on Rails中的postgresql查詢?
- 18. Ruby On Rails with MySQL
- 19. Android - Ruby on Rails - MySQL
- 20. 如何寫的Ruby這個sql查詢加入查詢(Ruby on Rails的)
- 21. Ruby on Rails查詢一對多關係
- 22. Ruby On Rails 3 ...構建查詢塊
- 23. 用Ruby on Rails進行查詢
- 24. Ruby on Rails SQlite 3數據庫查詢
- 25. Ruby on Rails 4.0按鈕查詢
- 26. Ruby on Rails的 - 動態SQL查詢
- 27. Ruby on Rails多個搜索查詢
- 28. Ruby on Rails的查詢幫助
- 29. Ruby on Rails的2.3 SQL LIKE查詢
- 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