当在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