1

我有一个需要导入数据库的文件,但我喜欢一次导入 10 条记录。

例如,我的 .csv 文件中有 100 条记录,因此它第一次运行时将从 0 开始,然后转到 10 并将您的更改为 domain.com/importfile.php/?start=10

这是我使用的代码。

$file = fopen($file, "r");
    while (($data = fgetcsv($file, 8000, ",")) !== FALSE) {
        $county = new County();
        $county->countrycode = $countrycode;
        $county->code = trim($data[0]);
        $county->var_name = $county->mod_write_check( trim($data[1]) );
        $county->name = trim($data[1]);
        $county->statecode = trim($data[2]);
        $save = $county->save();
    }
    fclose($file);

我想知道这是否可以做到。

4

2 回答 2

1

我建议使用SplFileObject处理文件。

这是一个通过基础知识的博客:

http://hakre.wordpress.com/2010/07/25/parsing-csv-files-with-php-spl-style/

SplFileObject 可以轻松查找,但结合limitIterator你也可以这样做:

$csv = new SplFileObject('data.csv');
$csv->setFlags(SplFileObject::READ_CSV);

foreach(new LimitIterator($csv, 0, 500) as $line){
  #save $line
}

代码片段来源

于 2013-05-27T16:31:42.940 回答
1

您可以使用$seek = ftell($file); ftell 文档fseek($file, $seek+1) 您需要在会话或其他地方携带$seek

于 2013-05-27T16:23:04.143 回答