1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Behebung eines CSV-Importproblems
Dieser Leitfaden erklärt, wie ein Problem beim Importieren einer .csv-Datei behoben werden kann.
Funktion "load data local infile" deaktiviert
Die "LOAD DATA LOCAL INFILE"-Funktion wird verwendet, um eine CSV-Datei in eine MySQL-Tabelle zu importieren und wird leider von Hackern häufig ausgenutzt, um Zugriff auf bestimmte Websites zu erhalten, die auf Maschinen gehostet werden, die diese Funktion akzeptieren.
Um gegen bösartige Aktivitäten vorzugehen und die Daten unserer Kunden weiterhin so gut wie möglich zu schützen, haben wir die "LOAD DATA LOCAL INFILE"-Funktion deaktiviert. Personen, die ihre CSV-Dateien importieren (sofern sie nicht "CSV via LOAD DATA" auswählen) über phpMyAdmin, sind von dieser Änderung nicht betroffen.
Hier ist eine Alternative, um weiterhin CSV-Daten in eine MySQL-Tabelle zu importieren, ein Beispiel in wenigen einfach zu implementierenden PHP-Zeilen innerhalb Ihres PHP-Skripts oder einfach in einer neuen PHP-Datei in Ihrem /web-Verzeichnis:
// Der obige Code dient nur als Beispiel, um zu verstehen, wie diese Funktion ersetzt werden kann. Fühlen Sie sich frei, Ihre eigene, effizientere Methode zur Datenübermittlung zu entwickeln.
// Ihren eigenen Weg zur Datenübermittlung zu entwickeln.
$Dateiname = "data.csv";
// Öffnen Sie die CSV-Datei zum Lesen
$handle = fopen($Dateiname, "r");
if ($handle) {
// Zerlegen Sie jede Zeile der CSV-Datei
while (($data = fgetcsv($handle, 1000, ";", """)) !== FALSE) {
$num = count($data)-1;
// Generieren Sie die SQL-Abfrage
$Abfrage = "INSERT INTO `test` VALUES (";
for ($c=0; $c < $num; $c++) {
$Abfrage .= "'" . mysql_real_escape_string($data[$c]) ."',";
}
$Abfrage .= "'" . mysql_real_escape_string($data[$num]) ."')";
// Fügen Sie die Zeile in die MySQL-Datenbank ein
mysql_query($Abfrage, $Link) or die (mysql_error());
$Abfrage = NULL;
}
// Schließen Sie die CSV-Datei
fclose($handle);
} else {
echo "Fehler: Die Datei konnte nicht geöffnet werden.
exit(1);
}
?>
Leider können wir Ihnen nicht genau den Ort in Ihrem Skript mitteilen, an dem diese Codezeilen hinzugefügt werden sollten. Wenn Sie den geeigneten Ort nicht finden können, wenden Sie sich bitte an Ihren Webmaster oder einen unserer Partner auf der folgenden Seite: http://partenaires.infomaniak.com/appel-offres/.
Wenn die vorgeschlagene Alternative Probleme verursacht, wenn Sie mehrere CSV-Dateien zum Lesen einreichen, und die Prozedur beispielsweise ohne Rückgabe einer Meldung endet, obwohl die Meldungspunkte in der PHP-Datei vorhanden sind, kann es sein, dass die verwendeten Tabellen und Felder falsch indiziert sind. In diesem Fall wenden Sie sich bitte ebenfalls an Ihren Webmaster.
Wir laden Sie auch ein, die PHP-Dokumentation zu fgetcsv hier zu konsultieren: http://php.net/manual/fr/function.fgetcsv.php