sql >> Databáze >  >> RDS >> Mysql

SQL dotazuje vazebné proměnné vs. je specifikuje

Ačkoli můžete mít svůj dotaz dokonale bezpečný bez vazby (manuálním formátováním všech proměnných), použití připravených příkazů k reprezentaci dat v dotazu je skutečně jediný správný způsob.

Důležitost použití připravených prohlášení je často nesprávně posouzena, takže bych rád objasnil skutečné výhody:

  • připravený příkaz umožňuje správné formátování (nebo manipulaci) nevyhnutelným .
  • připravený příkaz provádí správné formátování (nebo manipulaci) na jediném správném místě - těsně před provedením dotazu, ne někde jinde, takže naše bezpečnost nebude spoléhat na tak nespolehlivé zdroje jako
    • nějaká „magická“ funkce PHP, která data spíše kazí, než aby je zajistila.
    • dobrá vůle jednoho (nebo více) programátorů, kteří se mohou rozhodnout naformátovat (či neformátovat) naši proměnnou někde v průběhu programu. To je velmi důležitý bod.
  • připravený příkaz má vliv na samotnou hodnotu, která se zadává do dotazu, ale ne na zdrojovou proměnnou, která zůstává nedotčena a lze ji použít v dalším kódu (který má být odeslán e-mailem nebo zobrazen na obrazovce).
  • připravený příkaz může výrazně zkrátit kód aplikace, přičemž veškeré formátování se provádí za scénou (*pouze pokud to ovladač dovolí).


  1. Mysql localhost !=127.0.0.1?

  2. optimalizovat dotaz na počet mysql

  3. Jak mohu nastavit maximální počet řádků v tabulce MySQL?

  4. hierarchie stromu objednávky SQL