PHP - CSV-Datei in eine DB-Tabelle einlesen
Die CSV-Datei hat im akt. Beispiel 4 Spalten und wird durch Strichpunkte getrennt.
Daten 1;Daten 2;Daten 3;Daten 4 Daten 1;Daten 2;Daten 3;Daten 4 Daten 1;Daten 2;Daten 3;Daten 4 ...
Die Anzahl der Spalten müssen im folgendem Script angepasst werden, sowie die Verbindung zur Datenbank. Und Achten Sie auf eine einheitliche Zeichenkodierung (utf-8) zwischen der CSV-Datei und der DB-Tabelle.
➤ Voraussetzung ist eine bereits angelegte DB-Tabelle. Bei jedem Aufruf des Scriptes werden die Daten eingetragen, dieses dient hier also nur als Beispiel!
<?php
// CSV-Datei in eine DB-Tabelle einlesen
// CSV-Datei einlesen
$csvInhalt = file("test.csv", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
$daten = [];
$trennzeichen = ";";
foreach ($csvInhalt as $inhalt) {
// Die Anzahl der Spalten anpassen
list($spalte1, $spalte2, $spalte3, $spalte4) = explode($trennzeichen, $inhalt);
// Daten hinzufügen (Anzahl der Spalten anpassen)
$daten[] = "('" . $spalte1 . "','" . $spalte2 . "','" . $spalte3 . "','" . $spalte4 . "')" . chr(13);
}
// Verbindung zur Datenbank aufbauen
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
// SQL-String zusammensetzen
// Die Anzahl der Spalten und Namen anpassen
$sql = "INSERT INTO `tabelle` (`spalte1`, `spalte2`, `spalte3`, `spalte4`) VALUES" . implode(",", $daten) . ";";
// In die DB-Tabelle eintragen
if ($db->exec($sql)) {
echo '<p>Die Daten wurden eingetragen.</p>';
}
else {
print_r($db->errorInfo());
}
echo '<pre>' . $sql . '</pre>';
?>
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen
HTML, CSS,
PHP, JavaScript und
MySQL.
<bdo> Textrichtung
CSS - Text mit gestreiftem Hintergrund
PHP - Das aktuelle Bild (einer Webcam) anzeigen