Wenn vorbereitete Anweisungen unerlässlich sind
Während Sie ursprünglich mysql_connect und mysql_query zum Verwalten von Datenbankinteraktionen verwendet haben, haben Sie aufgrund von Bedenken hinsichtlich der SQL-Injection Nachforschungen angestellt vorbereitete Stellungnahmen. Es entsteht jedoch ein häufiges Missverständnis: Sind vorbereitete Anweisungen nur zum Schutz von Benutzereingaben erforderlich?
Warum Sie immer vorbereitete Anweisungen verwenden sollten
Die Antwort ist eindeutig: Verwenden Sie immer vorbereitete Anweisungen Aussagen, ohne Ausnahme. Auch wenn Sie bei der Verwendung von mysql_num_rows keinen erkennbaren Hacking-Risiken ausgesetzt sind, ist die Verwendung vorbereiteter Anweisungen aus folgenden Gründen überlegen:
So funktionieren vorbereitete Anweisungen
Vorbereitete Anweisungen übertragen die Abfrage und die Daten getrennt und ermöglichen so die Datenbank, um sie als eine Transaktion auszuführen. Dieser Schutz ist weitaus robuster als das Verketten von Abfragen mit Daten, was bei mysql_*-Funktionen und gerenderten Datenbanken, die anfällig für SQL-Injection sind, üblich war.
Verwendung vorbereiteter Anweisungen mit PHP-Bibliotheken
Mit PDO können Sie den folgenden veranschaulichenden Code verwenden, um vorbereitet zu verwenden Aussagen:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?,?)"); $stmt->execute([$name, $value]);
Mit MySQLi lautet der Code wie folgt:
$dbh->execute_query("INSERT INTO REGISTRY (name, value) VALUES (?,?)", [$name, $value]);
Zusätzliche Ressourcen
Das obige ist der detaillierte Inhalt vonSollte ich in meinen Datenbankinteraktionen immer vorbereitete Anweisungen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!