Import von CSV-Daten mit PHP / MySQL

Ich habe ein kleines Problem beim Versuch, Daten aus einer CSV-Datei zu importieren, und habe ein paar Fragen dazu, die ich selbst noch nicht gelöst habe.

Hier ist zunächst mein Code, um die Dinge ins rechte Licht zu rücken (etwas aufgeräumt, CSS- und DB-Verbindung entfernt):

<body>
<div id="container">
<div id="form">

<?php
$deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records
mysql_query($deleterecords);

//Upload File
if (isset($_POST['submit'])) {

    if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
        echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded 
 successfully." . "</h1>";
        echo "<h2>Displaying contents:</h2>";
        readfile($_FILES['filename']['tmp_name']);
    }

    //Import uploaded file to Database
    $handle = fopen($_FILES['filename']['tmp_name'], "r");

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $import="INSERT into importing(text,number)values('$data[0]','$data[1]')";

        mysql_query($import) or die(mysql_error());
    }

    fclose($handle);

    print "Import done";

//view upload form
} else {

    print "Upload new csv by browsing to file and clicking on Upload<br />\n";

    print "<form enctype='multipart/form-data' action='upload.php' method='post'>";

    print "File name to import:<br />\n";

    print "<input size='50' type='file' name='filename'><br />\n";

    print "<input type='submit' name='submit' value='Upload'></form>";

}

?>

</div>
</div>
</body>

Es ist im Grunde eine Adaption eines Beispiels, das ich nach vielen, vielen Versuchen mit verschiedenen Methoden gefunden habe.

Meine CSV-Datei enthält zwei Datenspalten, wobei die erste Textspalte und die zweite Ganzzahlspalte ist. Die Tabelle in der Datenbank enthält auch zwei Spalten, die erste heißt "Text" und die zweite "Nummer".

Die Fragen, die ich habe, sind also:

Der hochgeladene Text wird nur in jedem Feld als 0 angezeigt, und ich bin mir nicht sicher, warumIch lese ständig über Daten, die in "" eingeschlossen sind. Wenn dies passiert, wie würde ich sie sortieren?Wie kann ich die ersten X-Zeilen der CSV für Header usw. ignorieren?Wird das Datenformat während dieses Vorgangs geändert oder kann es in einem Diagramm verwendet werden? z.B. Würde eine Dezimalstelle eine Dezimalstelle bleiben, sobald sie in der Datenbank gespeichert ist?

Ich denke, das deckt alles ab, danke im Voraus für jede Hilfe!

BEARBEITEN:

Habe gerade einen Test mit 10.000 hochgeladenen Datensätzen durchgeführt und habe den Fehler erhalten:

"Schwerwiegender Fehler: Maximale Ausführungszeit von 30 Sekunden überschritten"

irgendwelche Gedanken?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage