我在try 从CSV导入数据时遇到了一些问题,其中有几个问题我自己还没有解决.
首先,下面是我的代码,帮助您正确看待问题(稍微整理一下,删除CSS和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>
这基本上是我在多次try 各种方法后发现的一个例子的改编.
我的CSV有两列数据,第一列是文本,第二列是整数 数据库中的表也有两列,第一列称为"Text",第二列称为"Number"
所以我的问题是:
- 上传的文本在每个字段都显示为0,我不知道为什么
- 我不断地读到数据以""结尾,如果发生这种情况,我将如何对其进行排序?
- 对于标题等,我如何忽略CSV的前X行?
- 在整个过程中是否更改了数据格式,或者是否已准备好在图形中使用它?例如,一旦将小数放入数据库,小数会保留小数吗?
我想这涵盖了一切,提前感谢您的帮助!
编辑:
刚刚测试了10000条上传记录,发现错误:
"致命错误:超过最大执行时间30秒"
有什么 idea 吗?