Podczas przeszukiwania bazy danych MYSQL dla aplikacji Rails 2.3.14, potrzebuję odpowiednio uciec z ciągu wyszukiwania, aby móc wyszukiwać ciągi zawierające apostrofy (apostrofy). Jaki jest najlepszy sposób na zrobienie tego? Używam klejnotu mysql
, na wszelki wypadek.Jak uciec dla zapytań MYSQL z Ruby on Rails?
Odpowiedz
Można użyć ActiveRecord za quote
metody (np ActiveRecord::Base.connection.quote("string with ' apostrophe")
), ale metody kwerendy ActiveRecord już ucieczkę SQL dla Ciebie. Na przykład:
a = "string with ' apostrophe"
ModelName.where("field1 = ?", a)
zmieni „ciąg z 'apostrof” do «ciąg z«»apostrof»
Podczas korzystania z klejnotu mysql
uzyskujesz metodę Mysql.escape_string()
. Używać w następujący sposób:
search_terms = Mysql.escape_string("it's working!")
conditions = [ "table1.name LIKE '%#{search_terms}%'" ]
# use conditions for MYSQL query as appropriate
Gdzie jest coś takiego dla PostgreSQL ?? –
Szyny quotes strings w następujący sposób:
# Quotes a string, escaping any ' (single quote) and \ (backslash) characters.
def quote_string(s)
s.gsub(/\\/, '\&\&').gsub(/'/, "''") # ' (for ruby-mode)
end
To działało z postgresql –
To jest fajne, dzięki – jahrichie
- 1. Ruby on Rails - Dynamic zapytań SQL
- 2. Problem z połączeniem z Ruby on rails
- 3. Jak mogę połączyć się z MySQL w Ruby on Rails?
- 4. Akcja transakcji z Ruby On Rails
- 5. Ruby vs. Ruby On Rails
- 6. Antypatterns z Ruby on Rails
- 7. Ruby on Rails on IIS?
- 8. Przełącznik Ruby on Rails
- 9. Wiele zapytań MySQL z Ruby
- 10. Docsplit Ruby on Rails
- 11. Funkcja API Sendgrid dla Ruby on Rails
- 12. Emacs znaczniki dla Ruby on Rails projektu
- 13. Mobilna wersja widoków dla Ruby on Rails
- 14. SAML 2.0 SSO dla Ruby on Rails?
- 15. Nie mogę połączyć się z MySQL w Ruby on Rails
- 16. ASP.NET MVC dla programistów Ruby on Rails?
- 17. Ruby on Rails: pluralize dla innych języków
- 18. Elegancka grupa PostgreSQL dla Ruby on Rails/ActiveRecord
- 19. Najlepsze Linux Distro dla Ruby on Rails?
- 20. Odpowiednik HTML dla Ruby on Rails?
- 21. Ruby on Rails: wybierz formularz
- 22. Ruby on Rails vs. Django
- 23. Ruby on Rails link_to obrazu
- 24. Stowarzyszenie polimorficzne Ruby on Rails
- 25. Integracja Ruby on Rails z Wordpress
- 26. Ruby on Rails I18n interpolation
- 27. Ruby on Rails: menu rozwijane
- 28. Monit Ruby on Rails Sidekiq
- 29. Ruby on Rails 301 przekierowanie
- 30. Ruby on rails i Node.js
Jest to przydatne w przypadku krótkich zapytań, ale w przypadku bardziej złożonych zapytań faktycznie łatwiej jest korzystać z SQL bardziej bezpośrednio. Patrzę na przypadek, w którym przeszukuję pięć różnych tabel, i bardzo trudno jest śledzić, która zmienna jest dopasowana do której części zapytania używa tej składni. – joanwolk
Spójrz na zakresy. Pozwalają one podzielić zapytanie na logiczne fragmenty, a następnie połączyć je w razie potrzeby. Jest znacznie czystszy – Angelo
Mamy zakresy. Oddzielnie: aplikacja, o której mowa, używa również surowych zapytań SQL zamiast metod Rails SQL, dlatego nie będę przełączać tego kodu z powrotem do metod ActiveRecord. – joanwolk