Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytania Sql wiążące zmienne a ich określanie

Chociaż możesz mieć całkowicie bezpieczne zapytanie bez wiązania (poprzez ręczne formatowanie wszystkich zmiennych), użycie przygotowanych instrukcji do przedstawienia danych w zapytaniu jest rzeczywiście jedynym właściwym sposobem.

Znaczenie używania przygotowanych oświadczeń jest często błędnie oceniane, dlatego chciałbym wyjaśnić rzeczywiste korzyści:

  • przygotowane oświadczenie sprawia, że ​​prawidłowe formatowanie (lub obsługa) nieuniknione .
  • przygotowana instrukcja prawidłowo formatuje (lub obsługuje) w jedynym właściwym miejscu - tuż przed wykonaniem zapytania, a nie gdzie indziej, więc nasze bezpieczeństwo nie będzie polegać na tak niewiarygodnych źródłach jak
    • niektóre „magiczne” funkcje PHP, które raczej psują dane niż czynią je bezpiecznymi.
    • dobrej woli jednego (lub kilku) programistów, którzy mogą zdecydować się na formatowanie (lub nieformatowanie) naszej zmiennej gdzieś w przepływie programu. To bardzo ważny punkt.
  • przygotowane oświadczenie ma wpływ na samą wartość, która jest wprowadzana do zapytania, ale nie na zmienną źródłową, która pozostaje nienaruszona i może być użyta w dalszym kodzie (do wysłania e-mailem lub pokazana na ekranie).
  • przygotowana instrukcja może znacznie skrócić kod aplikacji, wykonując całe formatowanie w tle (*tylko jeśli pozwala na to sterownik).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień format wyjściowy wyników wiersza poleceń MySQL na CSV

  2. json_encode nic nie zwraca

  3. MySQL nie używa indeksów z klauzulą ​​WHERE IN?

  4. Automatyczny ciąg znaków MySQL do rzutowania liczb całkowitych w klauzuli where?

  5. Jak przechowywać powtarzające się daty, pamiętając o czasie letnim?