php - 解析上传的 CSV 文件并将数据存储到数据库

标签 php upload csv

我想要使用 php 实现以下功能

我有一个 csv 文件。每个文件对应我数据库中的一行

有一个 html 表单可以让我选择 csv 文件。

然后一旦提交表单,我必须解析csv文件并相应地将数据插入数据库

我该怎么做?

最佳答案

读取 CSV 文件通常可以使用 fgetcsv 来完成函数 (根据您的 CSV 文件类型,您可能必须指定定界符、分隔符...作为参数)

这意味着逐行浏览你的文件不会比这样更难:

$f = fopen('/path/to/file', 'r');
if ($f) {
    while ($line = fgetcsv($f)) {  // You might need to specify more parameters
        // deal with $line.
        // $line[0] is the first column of the file
        // $line[1] is the second column
        // ...
    }
    fclose($f);
} else {
    // error
}

(未经测试,但 the manual page of fgetcsv 上给出的示例应该可以帮助您入门)

当然,您必须获得上传文件的正确路径——参见$_FILE 超全局,以及关于Handling file uploads 的部分。 ,了解更多相关信息。

而且,要将数据保存到您的数据库中,您必须使用适合您的数据库引擎的 API——如果使用 MySQL,您应该使用以下任一方法:

  • mysqli
    • 请注意,您应该更喜欢 mysqli,而不是旧的 mysql扩展(不支持 MySQL >= 4.1 中添加的功能)
  • PDO

关于php - 解析上传的 CSV 文件并将数据存储到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454056/

相关文章:

php - 在程序化 WordPress 插件中使用 WP_Session_Tokens 类

php - 计算年龄: PHP vs MySQL,哪种方法更好?

php - move_uploaded_file() 无法将文件从 tmp 移动到 dir

django - 如何将 NamedTemporaryFile 保存到 Django 中的模型 FileField 中?

mysql - 仅将匹配的数据从 CSV 导入到 MySQL

php - 句子内的单词搜索并删除前面的单词

php - PDO 对象可以存储在 session 中吗?

java - 上传文件 : Comsuming WCF Web Service Using Java

mysql - NodeJS,获取目录的名称

从 R 中的数百个 csv 文件中读取并合并第 6 行及以下行