Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man CSV-Daten mit PHP effizient in MySQL importieren und häufige Probleme vermeiden?
Ein Benutzer hatte Probleme beim Importieren von CSV-Daten in eine MySQL-Datenbank und stellte Folgendes Fragen:
1. Textwerte, die als „0“ angezeigt werden:
Die Daten werden wahrscheinlich als Ganzzahlen statt als Zeichenfolgen in die Datenbank importiert. Stellen Sie sicher, dass die Datenbankspalten den richtigen Typ haben (z. B. TEXT oder VARCHAR).
2. Umgang mit zitierten Daten:
Verwenden Sie die OPTIONALLY ENCLOSED BY-Klausel in der LOAD DATA INFILE-Abfrage, um das Einschlusszeichen anzugeben (z. B. ").
3. Kopfzeilen ignorieren :
Fügen Sie eine LINES TERMINATED BY-Klausel in die Abfrage ein und geben Sie das Zeilentrennzeichen an (z. B. n). Ignorieren Sie dann manuell die gewünschte Anzahl der Anfangszeilen vor dem Import.
4. Beibehaltung des Datenformats:
Dezimalwerte bleiben in ihrem ursprünglichen Format in der Datenbank.
5 Fehler wegen Zeitüberschreitung:
Erhöhen Sie die Einstellung „max_execution_time“ in der PHP-Konfiguration (z. B. in php.ini), um längere Ausführungszeiten zu ermöglichen. Erwägen Sie bei großen Importen die Verwendung einer effizienteren Methode wie LOAD DATA INFILE von MySQL direkt.
Anstatt PHP-Schleifen zum Importieren der Daten zu verwenden, kann MySQLs LOAD DATA INFILE CSV-Dateien mit einer einzigen SQL-Abfrage direkt in Tabellen importieren:
$query = <<<'eof' LOAD DATA INFILE '$fileName' INTO TABLE tableName FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1,field2,field3,etc) eof; $db->query($query);
Diese Methode ist schneller und effizienter als PHP-Parsing-Schleifen.
Das obige ist der detaillierte Inhalt vonWie kann man CSV-Daten mit PHP effizient in MySQL importieren und häufige Probleme vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!