gpt4 book ai didi

php - 使用 PHP/MySQL 导入 CSV 数据

转载 作者:IT老高 更新时间:2023-10-28 23:44:49 25 4
gpt4 key购买 nike

我在尝试从 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>

它基本上是对我在各种方法上多次尝试后找到的一个示例的改编。

我的 CSV 有两列数据,第一列是文本,第二列是整数数据库中的表也有两列,第一列叫“文本”,第二列叫“数字”

所以我的问题是:

  1. 正在上传的文本在每个字段中都显示为 0,我不知道为什么
  2. 我一直在阅读有关以“”结尾的数据,如果发生这种情况,我将如何对其进行排序?
  3. 如何忽略标题等 CSV 的前 X 行?
  4. 在整个过程中数据格式是否发生了变化,还是可以在图表中使用?例如小数一旦放入数据库中会一直保持小数吗?

我认为这涵盖了所有内容,在此先感谢您的帮助!

编辑:

刚做了10000条记录上传测试,报错:

“ fatal error :超过 30 秒的最大执行时间”

有什么想法吗?

最佳答案

前几天我回答了一个几乎相同的问题:Save CSV files into mysql database

MySQL 有一个特性 LOAD DATA INFILE,它允许它直接在单个 SQL 查询中导入 CSV 文件,根本不需要通过 PHP 程序在循环中处理它。

简单示例:

<?php
$query = <<<eof
LOAD DATA INFILE '$fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc)
eof;

$db->query($query);
?>

就这么简单。

没有循环,没有大惊小怪。而且比在 PHP 中解析要快得多。

这里的 MySQL 手册页:http://dev.mysql.com/doc/refman/5.1/en/load-data.html

希望有帮助

关于php - 使用 PHP/MySQL 导入 CSV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11448307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com