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

JavaScript - Zahlen autom. addieren

MySQL - Datensätze auswählen

Standardschriftarten benutzen
Setze nach Möglichkeit nur Standardschriftarten ein (Arial,Times New Roman, Verdana, Fixedsys, Courier, ...), denn bei einem Besucher, der deine Schriftart nicht installiert hat, wird automatisch eine Standardschriftart gewählt und so ändert sich eventuell das komplette Layout deiner Homepage.