Arrays in MySQL mit PHP und PDO einfügen
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:
<code class="php">$data = array(155, 165, 175, 185);</code>
Traditionell würde man eine Schleife erstellen, um mehrere INSERT-Anweisungen auszuführen, wie zum Beispiel:
<code class="php">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])); }</code>
Das Erstellen einer einzelnen dynamischen SQL-Anweisung gilt jedoch als effizienter. Eine mögliche Lösung wäre:
<code class="php">$sql = array(); foreach( $data as $row ) { $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")'; } mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));</code>
Mit PDO ist ein geeigneterer Ansatz:
<code class="php">$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); }</code>
Diese Technik ermöglicht das Einfügen mehrerer Zeilen in eine Datenbanktabelle mit einer einzigen vorbereiteten Anweisung, wodurch die Anzahl der Daten reduziert wird die Anzahl der Datenbankaufrufe und die Verbesserung der Leistung.
Das obige ist der detaillierte Inhalt vonWie fügt man mit PHP und PDO effizient mehrere Zeilen in eine MySQL-Tabelle ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!