Heim > Artikel > Backend-Entwicklung > Was bedeutet PHP-Vorverarbeitung?
Viele ausgereiftere Datenbanken unterstützen das Konzept vorbereiteter Aussagen. Was sind vorbereitete Aussagen? Betrachten Sie es als eine kompilierte Vorlage des SQL, das Sie ausführen möchten, das mithilfe variabler Parameter angepasst werden kann.
Vorbereitete Anweisungen können zwei große Vorteile bringen:
Query It only muss einmal analysiert (oder vorverarbeitet) werden, kann aber mehrmals mit denselben oder unterschiedlichen Parametern ausgeführt werden. Wenn eine Abfrage fertig ist, analysiert, kompiliert und optimiert die Datenbank den Plan zur Ausführung der Abfrage. (Empfohlenes Lernen: PHP-Video-Tutorial)
Bei komplexen Abfragen dauert dieser Vorgang lange. Wenn dieselbe Abfrage mehrmals mit unterschiedlichen Parametern wiederholt werden muss, dauert der Vorgang Verlangsamt die Anwendung erheblich. Durch die Verwendung vorbereiteter Anweisungen können Sie wiederholte Analyse-/Kompilierungs-/Optimierungszyklen vermeiden. Einfach ausgedrückt verbrauchen vorbereitete Anweisungen weniger Ressourcen und werden daher schneller ausgeführt.
Parameter, die für vorbereitete Anweisungen bereitgestellt werden, müssen nicht in Anführungszeichen gesetzt werden, der Treiber verarbeitet sie automatisch. Wenn Ihre Anwendung nur vorbereitete Anweisungen verwendet, können Sie sicherstellen, dass keine SQL-Injection erfolgt. (Wenn jedoch andere Teile der Abfrage aus nicht maskierten Eingaben erstellt werden, besteht immer noch das Risiko einer SQL-Injection.)
Vorbereitete Anweisungen sind so nützlich, dass ihre einzige Funktion darin besteht, dass PDO die Verarbeitung simuliert, wenn der Treiber dies nicht unterstützt. Dadurch wird sichergestellt, dass Anwendungen dasselbe Datenzugriffsmuster verwenden können, unabhängig davon, ob die Datenbank über solche Funktionen verfügt.
Verwenden Sie vorbereitete Anweisungen, um Daten zu erhalten
Das folgende Beispiel ruft Daten basierend auf der bereitgestellten Form des Schlüsselwerts ab. Benutzereingaben werden automatisch in Anführungszeichen gesetzt, sodass keine Gefahr von SQL-Injection-Angriffen besteht.
<?php $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?"); if ($stmt->execute(array($_GET['name']))) { while ($row = $stmt->fetch()) { print_r($row); } } ?>
Wenn der Datenbanktreiber dies unterstützt, kann die Anwendung auch Ausgabe- und Eingabeparameter binden. Ausgabeparameter werden normalerweise verwendet, um Werte aus gespeicherten Prozeduren zu erhalten. Ausgabeparameter sind etwas komplizierter zu verwenden als Eingabeparameter, da Sie beim Binden eines Ausgabeparameters die Länge des angegebenen Parameters kennen müssen. Wenn der an einen Parameter gebundene Wert größer als die empfohlene Länge ist, wird ein Fehler generiert.
Das obige ist der detaillierte Inhalt vonWas bedeutet PHP-Vorverarbeitung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!