Effizientes Einfügen mehrerer Zeilen in MySQLi mit SQL-Injection-Mitigation
Das Einfügen einer großen Anzahl von Zeilen in eine MySQL-Datenbank mit PHP und MySQLi erfordert eine Technik, die sowohl sicher als auch effizient ist. Das Vermeiden von SQL-Injections bei der Verarbeitung eines solchen Datenvolumens kann eine Herausforderung sein.
Lösung
Um dieses Problem zu beheben, sollten Sie die Verwendung einer Transaktion zum Gruppieren der Einfügevorgänge in Betracht ziehen. Dieser Ansatz beinhaltet das Verschieben der Vorbereitungs- und Bindungsvorgänge außerhalb der Schleife, wie unten gezeigt:
$array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
Vorteile der Transaktion
Implementierung
Denken Sie daran, die Abfragen START TRANSACTION und COMMIT außerhalb der PHP-Schleife auszuführen, um die Gesamtheit sicherzustellen Der Vorgang wird als einzelne Transaktion behandelt. Dieser Ansatz kombiniert die Sicherheit vorbereiteter Anweisungen mit der Effizienz von Masseneinfügungen und verringert gleichzeitig Stapelüberläufe.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient mehrere Zeilen in MySQLi einfügen und gleichzeitig SQL-Injection verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!