Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit PHP effizient und sicher viele Zeilen in MySQLi einfügen?

Wie kann ich mit PHP effizient und sicher viele Zeilen in MySQLi einfügen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 18:08:11732Durchsuche

How Can I Efficiently and Securely Insert Many Rows into MySQLi Using PHP?

Effizientes und sicheres Einfügen mehrerer Zeilen in MySQLi

In der PHP-Entwicklung kann das effiziente und sichere Einfügen zahlreicher Zeilen in eine MySQL-Datenbank eine Herausforderung sein Herausforderung. Um dieses Problem anzugehen, ist es wichtig, Techniken einzusetzen, die SQL-Injection verhindern und gleichzeitig die Leistung aufrechterhalten.

Ein gängiger Ansatz ist die Verwendung vorbereiteter Anweisungen mit Parameterbindung. In Fällen, in denen eine große Anzahl von Zeilen (z. B. 2000) eingefügt werden muss, kann dieser Ansatz jedoch langsam sein.

Eine effizientere Lösung besteht darin, Datenbanktransaktionen zu nutzen. Mit Transaktionen können Sie mehrere Vorgänge gruppieren und als eine einzige atomare Einheit ausführen. Durch das Initiieren einer Transaktion können Sie mehrere Zeilen mit einer einzigen vorbereiteten Anweisung einfügen und so den mit der Ausführung separater Einfügungen verbundenen Aufwand reduzieren.

Um dies zu veranschaulichen, hier ein optimierter Codeausschnitt:

$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");

Dieser Code initialisiert eine Transaktion, bereitet die Einfügeanweisung vor und bindet den Parameter. Anschließend wird das Wertearray durchlaufen und die Einfügeanweisung für jeden Wert innerhalb der Transaktion ausgeführt. Schließlich wird die Transaktion festgeschrieben und alle Einfügungen abgeschlossen.

Im Vergleich zur ursprünglichen Methode verbessert dieser Ansatz die Leistung erheblich. In einem Test mit 10.000 Iterationen dauerte die transaktionsbasierte Einfügung nur 2 Sekunden, während der ursprüngliche Ansatz 226 Sekunden dauerte. Das ist eine enorme Geschwindigkeitssteigerung um zwei Größenordnungen.

Durch die Nutzung von Transaktionen und vorbereiteten Anweisungen können Sie mehrere Zeilen effizient und sicher in eine MySQL-Datenbank in PHP einfügen und so sowohl Datenintegrität als auch Leistungsoptimierung gewährleisten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP effizient und sicher viele Zeilen in MySQLi einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn