我有带有标题和数据字段的 CSV 文件。我如何通过 SQL 查询插入它并删除 header 。目前我编写的代码正在运行,但它将 header 作为数据插入到数据库中。
代码:
$files = directory_map('./assets/csv/');
foreach ($files as $file) :
$filefile = './assets/csv/' . $file;
$q = "LOAD DATA LOCAL INFILE '$filefile' INTO TABLE person FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' (personal_name, personal_lastname,
personal_country,personal_address,contact_email,dateadded);";
$this->db->query($q);
endforeach;
最佳答案
您可以在加载数据中使用忽略xx行
子句(有关此的文档)[ http://dev.mysql.com/doc/refman/5.1/en/load-data.html]向下跳大约三分之一:
$q = "LOAD DATA LOCAL INFILE '$filefile' INTO TABLE person FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' ignore 1 lines (personal_name, personal_lastname,
personal_country,personal_address,contact_email,dateadded);";
这将导致输入跳过 CSV 的 1 行 - 我假设这是您的 header 。但是需要跳过许多行才能获取数据本身。
关于PHP、MySQL - 插入带标题的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26099263/