如何拆分行并导入大型.CSV文件中的数据库

时间:2016-07-28 17:55:11

标签: php mysql loops csv split

我有非常大的.csv文件,它由1000行组成。导入到我的数据库时,它需要花费太多时间,有时会显示错误,如超时

为了避免这种情况,我想先读取100行并导入数据库,依此类推。用PHP怎么办?有没有简单的方法?

2 个答案:

答案 0 :(得分:1)

您可能会考虑使用MySQL LOAD DATA语法。 它允许您从SQL查询中导入表中CSV的数据。你可以参数分隔符,行结尾等... 它可能比在PHP中解析文件并生成INSERT快得多。 请注意,您有两个选项:LOAD DATA INFILE(文件必须是mysql deamon可读)和LOAD DATA LOCAL INFILE(文件必须可以从mysql客户端读取)。

答案 1 :(得分:0)

 while (($data = fgetcsv($handle,1000, ",")) != FALSE) 
                {
                    $num = count($data); 
                    for ($c=0; $c < $num; $c++) 
                    {
                      $col[$c] = $data[$c];
                    }
     }

此代码对您有所帮助