Импорт данных CSV с использованием PHP / MySQL
У меня возникла небольшая проблема при попытке импортировать данные из CSV, и у меня есть пара вопросов, которые мне еще не удалось решить самостоятельно.
Во-первых, вот мой код, который поможет взглянуть на вещи в перспективе (немного привести в порядок, удалить связь CSS и БД):
<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>
Это в основном адаптация примера, который я обнаружил после многих попыток применения различных методов.
У моего CSV есть два столбца данных, первый - текст, а второй - целые числа Таблица в базе данных также имеет два столбца, первый из которых называется «текст». и второй «номер»;
Итак, у меня есть следующие вопросы:
the text being uploaded is just being displayed as 0 in every field and i'm not sure why I keep reading about data ending up enclosed in "", if that happens how would I sort it? how can I ignore the first X lines of the CSV for headers etc? is the data format changed throughout this process or is it ready for me to use in a graph? e.g. would a decimal stay a decimal once placed in the database?Я думаю, что охватывает все, заранее спасибо за любую помощь!
РЕДАКТИРОВАТЬ:
Только что проверил загрузку 10000 записей и получил ошибку:
& quot; Неустранимая ошибка: превышено максимальное время выполнения 30 секунд & quot;
Какие-нибудь мысли?