Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL fragt Bindungsvariablen ab, anstatt sie anzugeben

Obwohl Sie Ihre Abfrage ohne Bindung absolut sicher haben können (indem Sie alle Variablen manuell formatieren), ist die Verwendung vorbereiteter Anweisungen zur Darstellung Ihrer Daten in der Abfrage tatsächlich der einzig richtige Weg.

Die Bedeutung der Verwendung vorbereiteter Anweisungen wird oft falsch eingeschätzt, daher möchte ich die wirklichen Vorteile verdeutlichen:

    Die
  • vorbereitete Anweisung macht eine korrekte Formatierung (oder Handhabung) unvermeidlich .
  • Die
  • vorbereitete Anweisung führt die richtige Formatierung (oder Verarbeitung) an der einzig richtigen Stelle durch - direkt vor der Abfrageausführung, nicht woanders, unsere Sicherheit wird sich also nicht auf solche unzuverlässigen Quellen wie
      verlassen
    • irgendein 'magisches' PHP-Feature, das die Daten eher verdirbt als sicher macht.
    • guter Wille eines (oder mehrerer) Programmierer, die entscheiden können, unsere Variable irgendwo im Programmablauf zu formatieren (oder nicht zu formatieren). Das ist der Punkt von großer Bedeutung.
  • Die vorbereitete Anweisung beeinflusst genau den Wert, der in die Abfrage eingeht, aber nicht die Quellvariable, die intakt bleibt und im weiteren Code verwendet werden kann (um per E-Mail gesendet oder auf dem Bildschirm angezeigt zu werden).
  • Die vorbereitete Anweisung kann den Anwendungscode erheblich verkürzen, da die gesamte Formatierung im Hintergrund erfolgt (*nur wenn der Treiber dies zulässt).