Heim > Datenbank > MySQL-Tutorial > Welcher Ansatz ist besser zum Einfügen mehrerer Zeilen in PHP PDO MySQL?

Welcher Ansatz ist besser zum Einfügen mehrerer Zeilen in PHP PDO MySQL?

Susan Sarandon
Freigeben: 2024-11-13 11:16:02
Original
1000 Leute haben es durchsucht

Which Approach is Better for Inserting Multiple Rows in PHP PDO MySQL?

Einfügen mehrerer Zeilen in PHP PDO MySQL: Codevergleich und -optimierung

Beim Umgang mit der Notwendigkeit, mehrere Zeilen in eine MySQL-Tabelle einzufügen mit PHP PDO können Entwickler auf zwei Hauptansätze stoßen.

Ansatz 1:

$stmt = $db->prepare($sql);

foreach($rows as $row){
  $stmt->execute($row);
}
Nach dem Login kopieren

Ansatz 2:

$sql = "insert into `table_name` (col1, col2, col3) values ";
$sql .= //not sure the best way to concatenate all the values, use implode?
$db->prepare($sql)->execute();
Nach dem Login kopieren

Codeleistung und Sicherheit:

Beides Ansätze sind realisierbar, unterscheiden sich jedoch hinsichtlich der Ausführungsgeschwindigkeit und Sicherheit.

Ansatz 1:

  • Vorteile: Einfach und leicht zu implementieren.
  • Nachteile: Kann bei großen Datensätzen aufgrund von langsam sein separate Ausführungen für jede Zeile.

Ansatz 2:

  • Vorteile:Schneller als Ansatz 1 für große Datensätze, da eine Stapeleinfügung durchgeführt wird.
  • Nachteile: Erfordert eine sorgfältige Verkettung von Werten, was das Risiko von SQL-Injection-Angriffen erhöht (verwenden Sie parametrisierte Abfragen, um verhindern).

Entscheidung für den besten Ansatz:

Der optimale Ansatz hängt von der Größe des einzufügenden Datensatzes ab. Für kleine Datensätze ist jede Methode geeignet. Für große Datensätze, bei denen es auf die Geschwindigkeit ankommt, wird Ansatz 2 mit parametrisierten Abfragen empfohlen.

Zusätzliche Optimierung:

Die Batch-Einfügung in Ansatz 2 kann durch Verketten der Platzhalter vor dem Ausführen der Abfrage:

$sqlArray = array();
foreach($rows as $row){
    $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')';
}
$sql .= implode(',', $sqlArray);
Nach dem Login kopieren

Dadurch wird die Anzahl der Platzhalter, die gebunden werden müssen, erheblich reduziert vor der Ausführung, um die Leistung zu steigern.

Das obige ist der detaillierte Inhalt vonWelcher Ansatz ist besser zum Einfügen mehrerer Zeilen in PHP PDO MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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