„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 kann ich mithilfe vorbereiteter Anweisungen in PHP und PDO effizient mehrere Datenpunkte aus einem Array in MySQL einfügen?

Wie kann ich mithilfe vorbereiteter Anweisungen in PHP und PDO effizient mehrere Datenpunkte aus einem Array in MySQL einfügen?

Veröffentlicht am 12.11.2024
Durchsuche:604

How Can I Efficiently Insert Multiple Data Points from an Array into MySQL Using Prepared Statements in PHP & PDO?

Einfügen mehrerer Daten in MySQL mithilfe vorbereiteter Anweisungen mit PHP und PDO

In Szenarien wie der Online-Registrierung wählen Benutzer häufig mehrere Artikel aus, die sie kaufen, registrieren oder registrieren möchten verbinden. Diese Elemente werden normalerweise in Arrays gespeichert, um ihre Verarbeitung zu erleichtern. Allerdings kann das Einfügen von Daten aus Arrays in MySQL-Datenbanken mithilfe vorbereiteter Anweisungen in PHP und PDO eine Herausforderung sein. In diesem Artikel werden Methoden zur Bewältigung dieser Herausforderung untersucht.

Ein Ansatz besteht darin, eine for-Schleife zu verwenden und mehrere Instanzen der SQL-Anweisung auszuführen, wie unten gezeigt:

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

Obwohl diese Methode relativ einfach ist, weist sie beim Umgang mit großen Datensätzen Leistungsprobleme auf.

Ein effizienterer Ansatz besteht darin, eine einzelne SQL-Anweisung dynamisch zu erstellen. Dies kann erreicht werden, indem man über das Array iteriert und eine durch Kommas getrennte Liste von Platzhaltern und Werten in Klammern generiert:

$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 Methode kombiniert die einzelnen Daten effektiv in einer einzigen Abfrage zum Einfügen in die Datenbank. Es gewährleistet eine effiziente Verarbeitung und reduzierten Overhead und eignet sich daher für Szenarien mit großen Datenmengen oder wenn die Leistungsoptimierung von entscheidender Bedeutung ist.

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