PDO-vorbereitete Einfügungen: Verbesserung der Sicherheit und Leistung bei der Massendateneinfügung
Im Bereich der Datenmanipulation bieten PDO-vorbereitete Anweisungen ein überlegenes Niveau an Sicherheit und Leistung im Vergleich zu statischen Abfragen. Dies erstreckt sich auch auf das Einfügen von Massendaten, bei dem mehrere Wertezeilen effizient mit einer einzigen Abfrage eingefügt werden können.
Man kann die vorbereiteten Anweisungen von PDO nutzen, um „das Einfügen mehrerer Wertezeilen durch die Verwendung einer Abfrage“ zu generieren. Der Schlüssel besteht darin, eine strukturierte Abfrage zu erstellen, die mehrere Wertesätze berücksichtigt.
Zur Veranschaulichung betrachten wir die folgende SQL-Anweisung:
INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),...
In dieser Anweisung ist jeder Wertesatz eingeschlossen innerhalb seiner eigenen Klammern. Um diese Abfrage für vorbereitete Einfügungen anzupassen, können wir eine Platzhaltersequenz für jede Spalte verwenden und diese Platzhalter verketten, um den VALUES-Teil zu erstellen.
Wenn wir beispielsweise zwei Spalten haben, wäre der VALUES-Teil:
(?,?),
Wir replizieren dann diesen WERTE-Teil für jede Datenzeile und trennen sie durch a Komma:
(?,?), (?,?), ...
Schließlich können wir die vollständige Abfrage erstellen:
INSERT INTO `tbl` (`key1`,`key2`) VALUES (?,?) , (?,?), ...
Um diese Abfrage mit PDO auszuführen, bereiten wir die Anweisung vor und stellen mithilfe von ein Array mit allen Werten bereit execute()-Methode. Der folgende Code veranschaulicht diesen Ansatz:
$data = [['valueA1', 'valueB1'], ['valueA2', 'valueB2']]; $values = implode(',', array_fill(0, count($data[0]), '?')); $sql = "INSERT INTO table (colA, colB) VALUES " . implode(',', array_fill(0, count($data), "($values)")) . ";"; $stmt = $db->prepare($sql); $stmt->execute(array_merge(...$data));
Diese Technik gewährleistet nicht nur die Datenintegrität durch die Bereinigung von Eingaben, sondern optimiert auch die Leistung, indem eine einzelne Abfrage für mehrere Zeileneinfügungen ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWie können von PDO vorbereitete Anweisungen die Massendateneinfügung optimieren und so die Sicherheit und Leistung erhöhen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!