Frage

Was ist eine parametrisierte Abfrage, und was wäre ein Beispiel für eine solche Abfrage sein in PHP und MySQL?

War es hilfreich?

Lösung

Eine parametrisierte Abfrage (auch bekannt als ein vorbereitete Anweisung ) ist eine Einrichtung der Pre-Kompilieren einer SQL-Anweisung, so dass alles, was Sie Versorgung müssen die „Parameter“ sind (man denke an „Variablen“), die Notwendigkeit in die Anweisung eingefügt werden, damit sie ausgeführt werden. Es wird allgemein als ein Mittel zur Verhinderung von SQL-Injection-Angriffe verwendet.

Sie können mehr über diese auf PHP lesen PDO (gU ist eine Datenbank-Abstraktionsschicht), obwohl man auch von ihnen Gebrauch machen kann, wenn Sie den mysqli-Datenbank-Schnittstelle verwenden (siehe prepare Dokumentation).

Andere Tipps

Dies ist eine klare und prägnante Erklärung dessen, was es ist und wie es funktioniert. Wie und Warum Parametrierung

Essentielle beinhaltet das Verfahren den Server Vorverarbeitung die Anforderung ohne Parameter, so dass es die Art der weiß Abfrage ist. So zum Beispiel einer SELECT-Abfrage ist nur eine SELECT-Abfrage, und kann nicht durch einen Parameter (Request-Variable) verkettet wird, ein SELECT / DROP oder eine andere MySql Injektion zu sein. Stattdessen wird die Injektions Daten nur String-Daten im Parameterfeld sein werden.

Eine parametrisierte Abfrage ist eine Abfrage, in welchen Platzhalter für Parameter verwendet werden und die Parameterwerte werden zur Ausführungszeit geliefert.

Warum Verwendung von parametrisierten Abfragen

  1. Der wichtigste Grund parametrisierte Abfragen zu verwenden ist SQL-Injection-Angriffe zu vermeiden.
  2. Zweitens parametrisierte Abfrage übernimmt Szenario, in dem SQL-Abfrage für beispielsweise fehlschlagen, Einführen von O'Baily in einem Feld. Parametrisierte Abfrage handel solche Abfrage ohne zwingen Sie einfache Anführungszeichen mit Doppel einfachen Anführungszeichen zu ersetzen.

Diese Aussage ist eines der Merkmale des Datenbanksystems, in dem gleiche SQL-Anweisung mit hoher Effizienz wiederholt ausführt. Die vorbereiteten Anweisungen sind eine Art der Vorlage und durch Anwendung mit verschiedenen Parametern verwendet. Referenz Artikel

Datenbank-System kann die gleiche SQL-Anweisung ausführen, ohne die Analyse zu tun, Kompilieren und immer wieder für die gleiche Art von SQL-Anweisung zu optimieren.

Sie können vorbereitete Anweisung in MySQL schreiben oder erstellen, aber dies ist nicht eine effiziente Art und Weise, da das binäre Protokoll durch eine vorbereitete Anweisung API besser ist.

Aber noch können Sie schreiben, und auch dies erfordert keine andere Programmierung direkt in SQL schreiben. Sie können eine vorbereitete Anweisung für MySQL-Client program.You auch eine vorbereitete Anweisung in einer gespeicherten Prozedur für die dynamische SQL-Ansatz verwenden können.

Erstellen vorbereitete Anweisung in MySQL: Bezug genommen wird aus diesem Artikel

PREPARE TestStmt FROM 
'SELECT * FROM Test 
WHERE TestNumber=?';

Sie können PHP-Code verwenden vorbereitete Erklärung über seine API zu verwalten oder auf der Ebene der JDBC verwalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top