Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich 2000 Zeilen effizient in MySQL einfügen und gleichzeitig SQL-Injection und Stack-Überlauf verhindern?
Das sichere und performante Einfügen großer Datenmengen in eine MySQL-Datenbank ist für viele Anwendungen von entscheidender Bedeutung. In dieser Frage werden Techniken zum effektiven Einfügen von 2000 Zeilen untersucht und gleichzeitig der SQL-Injection-Schutz gewährleistet.
Das bereitgestellte Code-Snippet durchläuft ein Array von Werten und bereitet für jede Einfügung eine separate Abfrage vor und führt sie aus. Dieser Ansatz ist zwar sicher gegen SQL-Injections, kann jedoch ineffizient sein und zu Stapelüberläufen führen.
Erweiterte Lösung mit Transaktionen:
Eine optimalere Lösung beinhaltet die Verwendung von MySQL-Transaktionen. Durch die Gruppierung der Einfügungen innerhalb einer einzelnen Transaktion kann die Datenbank den Prozess optimieren und die Ausführungszeit erheblich reduzieren.
$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");
Leistungsvergleich:
Diese Technik bietet eine erhebliche Geschwindigkeitsverbesserung, wie durch Benchmark-Tests gezeigt:
Dies stellt eine beeindruckende Geschwindigkeitssteigerung um zwei Größenordnungen für den Testfall dar.
Durch die Nutzung von Transaktionen können Sie Daten effizient in großen Mengen einfügen und gleichzeitig die SQL-Injection-Sicherheit aufrechterhalten und vermeiden Stapelüberläufe.
Das obige ist der detaillierte Inhalt vonWie kann ich 2000 Zeilen effizient in MySQL einfügen und gleichzeitig SQL-Injection und Stack-Überlauf verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!