Wie führt man in MySQLi mit vorbereiteten Anweisungen effektiv das Einfügen mehrerer Zeilen durch?

Susan Sarandon
Freigeben: 2024-10-20 16:35:29
Original
532 Leute haben es durchsucht

How to Perform Multiple Row Insertion Effectively in MySQLi Using Prepared Statements?

Einfügung mehrerer Zeilen in MySQLi mithilfe vorbereiteter Anweisungen

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!