Импорт данных 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 есть два столбца данных, первый из которых является текстом, а второй — целыми числами. Таблица в базе данных также имеет два столбца, первый из которых называется «текст», а второй — «число»

. Итак, у меня есть вопросы:

  1. загружаемый текст просто отображается как 0 в каждом поле, и я не уверен, почему
  2. Я продолжаю читать о том, что данные оказываются заключенными в «», если это произойдет, как мне их отсортировать?
  3. как я могу игнорировать первые строки X CSV для заголовков и т. д.?
  4. изменился ли формат данных в ходе этого процесса или он готов для использования на графике? например. останется ли десятичное число десятичным после помещения в базу данных?

Я думаю, что охватывает все, заранее спасибо за любую помощь!

РЕДАКТИРОВАТЬ:

Только что сделал тест на загрузку 10000 записей и получил ошибку:

«Неустранимая ошибка :Превышено максимальное время выполнения 30 секунд»

есть идеи?

26
задан Zoe 17 June 2013 в 05:22
поделиться