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.

<bdi> Textrichtung

CSS - Regenbogen Text

PHP - Wochennamen ausgeben

JavaScript - Passwort im Klartext anzeigen

MySQL - Tabelle nach 7 Tagen leeren