Effizientes Einfügen mehrerer Zeilen mithilfe von PDO in MySQL
Wenn Entwickler vor der Aufgabe stehen, mehrere Zeilen in eine MySQL-Tabelle einzufügen, denken Entwickler oft darüber nach beste Vorgehensweise zur Verwendung von PDO. Es gibt zwei Hauptoptionen: die Zeilen einzeln ausführen oder die SQL-Anweisung verketten und als Stapel ausführen.
Option 1: Einzelzeilenausführung
Dieser Ansatz beinhaltet die Vorbereitung der SQL-Anweisung und deren separate Ausführung für jede Zeile:
$sql = "insert into `table_name` (col1, col2, col3) values (?, ?, ?)"; $stmt = $db->prepare($sql); foreach ($rows as $row) { $stmt->execute($row); }
Option 2: Batch Einfügen
Bei diesem Ansatz wird die SQL-Anweisung mit den Zeilenwerten verkettet und dann als einzelner Befehl ausgeführt:
$sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = []; $sqlArray = []; foreach ($rows as $row) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach ($row as $element) { $paramArray[] = $element; } } $sql .= implode(',', $sqlArray); $stmt = $db->prepare($sql); $stmt->execute($paramArray);
Leistungsüberlegungen
Während der Ansatz der Stapeleinfügung theoretisch schneller ist, ist der tatsächliche Leistungsunterschied zwischen den beiden Optionen oft vernachlässigbar. In den meisten Fällen wird die durch die einmalige Ausführung der Anweisung eingesparte Zeit durch den Aufwand für die Verkettung der Werte ausgeglichen.
Sicherheitsüberlegungen
Beide Ansätze gelten aufgrund ihrer Sicherheit als sicher Verwenden Sie vorbereitete Anweisungen, um SQL-Injection zu verhindern Angriffe.
Empfehlung
Aus Gründen der Einfachheit und Leichtigkeit der Implementierung wird generell der Ansatz der Einzelzeilenausführung empfohlen. Wenn jedoch die Leistung von entscheidender Bedeutung ist, kann der Ansatz des Batch-Einfügens untersucht werden.
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie fügt man mithilfe von PDO in MySQL effizient mehrere Zeilen ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!