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.

Voraussetzung ist eine bereits angelegte DB-Tabelle. Bei jedem Aufruf des Scriptes werden die Daten eingetragen, dies dient hier also nur als Beispiel!

Achten Sie auf eine einheitliche Zeichenkodierung zwischen der CSV-Datei und der DB-Tabelle.


<?php

// CSV-Datei in eine DB-Tabelle einlesen

// CSV-Datei einlesen
$csvInhalt file("test.csv"FILE_SKIP_EMPTY_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

Eine zufällige Auswahl von „Bausteinen” aus den Bereichen CSS, PHP, JavaScript und MySQL.

CSS - Fehleingaben in Formularen mit CSS hervorheben

PHP - Dateigröße umrechnen

JavaScript - Countdown

MySQL - Eintrag in der Tabelle löschen