„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie fügt man mit PHP und PDO effizient mehrere Zeilen in eine MySQL-Tabelle ein?

Wie fügt man mit PHP und PDO effizient mehrere Zeilen in eine MySQL-Tabelle ein?

Veröffentlicht am 14.11.2024
Durchsuche:398

How to Efficiently Insert Multiple Rows into a MySQL Table Using PHP and PDO?

Einfügen von Arrays in MySQL mit PHP und PDO

Bei der Initialisierung von Online-Programmen können sich Kunden für mehrere Programme anmelden, die als dreistellige Ganzzahlen und dargestellt werden in einem Array gespeichert. Um sich beispielsweise für die Programme 155, 165, 175 und 185 anzumelden, würde das folgende Array verwendet werden:

$data = array(155, 165, 175, 185);

Traditionell würde man eine Schleife erstellen, um mehrere INSERT-Anweisungen auszuführen, z als:

for($j = 0; $j prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}

Das Erstellen einer einzelnen dynamischen SQL-Anweisung gilt jedoch als effizienter. Eine mögliche Lösung wäre:

$sql = array();
foreach( $data as $row ) {
    $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));

Mit PDO ist ein geeigneterer Ansatz:

$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}

Diese Technik ermöglicht das Einfügen mehrerer Zeilen in eine Datenbanktabelle mit einer einzigen vorbereiteten Anweisung, wodurch die Anzahl der Datenbankaufrufe reduziert und die Leistung verbessert wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3