使用php将大型csv文件导入mysql数据库

时间:2010-09-23 07:26:55

标签: php mysql import-from-csv

我有一个非常大的CSV文件(150 MB)。将它导入MySQL的最佳方法是什么? 在将它插入MySQL表之前,我必须在PHP中进行一些操作。

2 个答案:

答案 0 :(得分:6)

您可以查看MySQL中的LOAD DATA INFILE

一旦将数据加载到MySQL中,您就可以进行操作,而不是先将其读入PHP。首先使用LOAD DATA INFILE将原始数据存储在临时表中,然后使用如下语句将数据转换为目标表:

INSERT INTO targettable (x, y, z)
SELECT foo(x), bar(y), z
FROM temptable

答案 1 :(得分:3)

我只想用fopen打开它并使用fgetcsv将每行读入数组。 伪php如下:

mysql_connect( //connect to db);

$filehandle = fopen("/path/to/file.csv", "r");
while (($data = fgetcsv($filehandle, 1000, ",")) !== FALSE) {
    // $data is an array
    // do your parsing here and insert into table
}

fclose($filehandle)
相关问题