Erstellen sicherer vorbereiteter MySQL-Anweisungen in PHP
Wenn Sie ein Anfänger in PHP mit vorbereiteten MySQL-Anweisungen sind, sind Sie auf Folgendes gestoßen Sie müssen Daten sicher aus Spalten abrufen. Um dies zu erreichen, tauchen wir in die Welt der vorbereiteten Anweisungen ein und sorgen für die Sicherheit Ihrer Abfragen.
Enthüllung der anfälligen Abfrage
Ihre aktuelle SQL-Anweisung ist zwar unkompliziert, mangelt es an Sicherheit:
$qry = "SELECT * FROM mytable where userid='{$_GET['userid']}' AND category='{$_GET['category']}'ORDER BY id DESC";
Dieser Ansatz macht Ihre Anwendung anfällig für SQL-Injection-Angriffe, bei denen böswillige Benutzer Ihre Abfrage mit speziellen Mitteln manipulieren können Zeichen.
Erstellen einer sicheren vorbereiteten Anweisung
Um Ihre Abfrage zu immunisieren, verwenden wir eine vorbereitete Anweisung:
$stmt = $db->prepare("SELECT * FROM mytable WHERE userid=? AND category=? ORDER BY id DESC");
Diese Anweisung verwendet Platzhalter ( „?“) zur Darstellung von Eingabeparametern. Anschließend binden wir diese Parameter sicher an die tatsächlichen Werte:
$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
Durch die separate Bindung der Daten verhindern wir, dass böswillige Zeichen unsere Abfrage verändern.
Leistungsoptimierung
Sie sind neugierig auf die Auswirkungen vorbereiteter Anweisungen auf die Leistung. Während sie bei einer einzelnen Ausführung geringfügige Vorteile bieten können, glänzen sie wirklich, wenn sie mehrmals innerhalb einer Seite oder Schleife ausgeführt werden.
Die vorbereitete Anweisung speichert den Abfrageplan im Cache, sodass es nicht erforderlich ist, ihn bei jeder Ausführung zu analysieren und zu kompilieren . Diese Optimierung kann insbesondere bei komplexen Abfragen zu deutlichen Geschwindigkeitsverbesserungen führen.
Assoziative Arrays extrahieren
Für Abfragen, die mehrere Spalten zurückgeben, können Sie die folgende Funktion zur automatischen Extraktion verwenden An ein assoziatives Array binden:
function stmt_bind_assoc (&$stmt, &$out) { ... }
Dieses Dienstprogramm optimiert den Prozess der Arbeit mit Arrays, die von SELECT * zurückgegeben werden Abfragen.
Fazit
Vorbereitete Anweisungen sind für die Sicherung Ihrer MySQL-Abfragen und die Verhinderung von SQL-Injection-Angriffen unerlässlich. Durch deren Implementierung können Sie Ihre Anwendung schützen und von Leistungsoptimierungen profitieren, wenn Sie dieselbe Abfrage mehrmals ausführen. Nutzen Sie die Kraft vorbereiteter Kontoauszüge für einen sicheren und effizienten Datenzugriff.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PHP-vorbereiteten Anweisungen sicher Daten aus MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!