Importowanie danych CSV przy użyciu PHP / MySQL
Mam problem z importowaniem danych z CSV i mam kilka pytań na ten temat, których jeszcze nie udało mi się rozwiązać.
Po pierwsze, tutaj jest mój kod, który ma pomóc w uporządkowaniu rzeczy (trochę posprzątać, usunąć połączenie CSS i DB):
<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>
Jest to zasadniczo adaptacja przykładu, który znalazłem po wielu próbach różnych metod.
Mój CSV ma dwie kolumny danych, z których pierwsza to tekst, a druga to liczby całkowite. Tabela w bazie danych ma również dwie kolumny: pierwszą zwaną „tekstem” i drugą „liczbę”
Mam więc pytania:
przesyłany tekst jest wyświetlany jako 0 w każdym polu i nie jestem pewien dlaczegoCiągle czytam o danych kończących się w „”, jeśli tak się stanie, jak mam to posortować?jak mogę zignorować pierwsze wiersze X CSV dla nagłówków itp?czy format danych został zmieniony w trakcie tego procesu, czy jest gotowy do użycia na wykresie? na przykład czy liczba dziesiętna pozostanie dziesiętna po umieszczeniu w bazie danych?Myślę, że obejmuje wszystko, z góry dzięki za wszelką pomoc!
EDYTOWAĆ:
Właśnie wykonałem test 10 000 przesłanych rekordów i otrzymałem błąd:
„Błąd krytyczny: przekroczono maksymalny czas wykonania 30 sekund”
jakieś pomysły?