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

时间:2010-03-16 11:55:57

标签: php upload csv

我想使用php

以下功能

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

有一个html表单允许我选择csv文件。

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

我该怎么做?

1 个答案:

答案 0 :(得分:9)

通常可以使用fgetcsv函数来读取CSV文件(取决于您的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