Bei der Masseneinfügung von Daten kann die Erstellung einer einzelnen Abfrage mit mehreren Zeilen effizienter sein als die Ausführung mehrerer separater Abfragen. Die Verwendung vorbereiteter Anweisungen zum Einfügen mehrerer Zeilen erfordert jedoch einen etwas anderen Ansatz.
Erstellen der Anweisung mit mehreren Zeilen
Um mehrere Zeilen mithilfe einer vorbereiteten Anweisung einzufügen, können Sie dies tun Nutzen Sie die Methode der Zeichenfolgenverkettung:
<code class="php">$rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $rowCount = count($rows); $values = "(" . implode('),(', array_fill(0, $rowCount, '?,?,?')) . ")"; $stmt = $mysqli->prepare("INSERT INTO table (col1, col2, col3) VALUES $values");</code>
Hier erstellt die Variable $values den Teil der Abfrage, der die Zeilenwerte im Format (?, ?, ?), (?, ?, ?) enthält. ....
Binden und Ausführen
Sobald die Anweisung vorbereitet ist, können die Werte gebunden und die Anweisung ausgeführt werden. Beachten Sie jedoch, dass bind_param erwartet, dass alle Parameter als einzelnes Array übergeben werden, sodass die mehreren Zeilen mit der Methode array_merge(...$rows) reduziert und entpackt werden müssen:
<code class="php">$stmt->bind_param(str_repeat('i', $rowCount * 3), ...array_merge(...$rows)); $stmt->execute();</code>
Dieser Ansatz ermöglicht Ihnen um mehrere Zeileneinfügungen in einer einzigen Fahrt in die Datenbank durchzuführen und so die Effizienz bei Massendateneinfügungsvorgängen zu steigern.
Das obige ist der detaillierte Inhalt vonWie führt man in MySQLi mit vorbereiteten Anweisungen effektiv das Einfügen mehrerer Zeilen durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!