Was ist parametrisierte Abfrage?

8

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

    
totalnoobs 17.01.2011, 10:18
quelle

4 Antworten

11

Eine parametrisierte Abfrage (auch bekannt als vorbereitete Anweisung ) ist ein Mittel zum Vorkompilieren einer SQL-Anweisung, so dass Sie nur die "Parameter" (denken Sie "Variablen") angeben müssen müssen in die Anweisung eingefügt werden, damit sie ausgeführt werden kann. Es wird häufig verwendet, um SQL-Injection-Angriffe zu verhindern.

Sie können mehr darüber auf der PHP PDO-Seite lesen (PDO ist eine Datenbankabstraktionsschicht) ), obwohl Sie diese auch verwenden können, wenn Sie die mysqli-Datenbankschnittstelle verwenden (siehe vorbereiten < Dokumentation>).

    
John Parker 17.01.2011, 10:27
quelle
0

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

Entscheidend ist, dass der Server die Anfrage ohne Parameter vorverarbeitet, so dass er die Art der Anfrage kennt. So ist zum Beispiel eine SELECT-Abfrage nur eine SELECT-Abfrage und kann nicht durch einen Parameter (Anforderungsvariable) zu einer SELECT / DROP- oder einer anderen MySql-Injektion verkettet werden. Stattdessen sind die Injektionsdaten nur Stringdaten im Parameterfeld.

    
user945389 07.01.2014 16:03
quelle
0

Diese Anweisung ist eines der Merkmale des Datenbanksystems, in dem dieselbe SQL-Anweisung wiederholt mit hoher Effizienz ausgeführt wird. Die vorbereiteten Anweisungen sind eine Art des Templates und werden von der Anwendung mit verschiedenen Parametern verwendet. Referenzartikel

Das Datenbanksystem kann die gleiche SQL-Anweisung ausführen, ohne das Parsen, Kompilieren und Optimieren für dieselbe Art von SQL-Anweisung zu wiederholen.

Sie können vorbereitete Anweisungen in MySQL schreiben oder erstellen, aber dies ist kein effizienter Weg, da das binäre Protokoll durch eine vorbereitete Anweisungs-API besser ist.

Aber Sie können immer noch schreiben und selbst das erfordert keine andere Programmierung, die Sie direkt in SQL schreiben können. Sie können eine vorbereitete Anweisung für das MySQL-Client-Programm verwenden. Sie können auch eine vorbereitete Anweisung in einer gespeicherten Prozedur für den dynamischen SQL-Ansatz verwenden.

Erstellen Sie eine vorbereitete Anweisung in MySQL: Verweis ist von diesem Artikel

%Vor%

Sie können PHP-Code verwenden, um vorbereitete Anweisungen über ihre API zu verwalten oder auf der Ebene von JDBC zu verwalten.

    
Anvesh 01.10.2015 10:39
quelle
0

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

Warum parametrisierte Abfrage verwenden

  1. Der wichtigste Grund für die Verwendung parametrisierter Abfragen besteht darin, SQL-Injection-Angriffe zu vermeiden.
  2. Die zweite parametrisierte Abfrage kümmert sich um das Szenario, in dem die SQL-Abfrage z. Einfügen von O'Baily in ein Feld. Eine parametrisierte Abfrage führt eine solche Abfrage durch, ohne Sie dazu zu zwingen, einfache Anführungszeichen durch doppelte einfache Anführungszeichen zu ersetzen.
user7193303 23.11.2016 08:28
quelle

Tags und Links