Codeigniter 2.2,MySQL - 在csv导入后获取所有ID

时间:2014-10-02 10:23:35

标签: php mysql codeigniter

我正在从 csv 导入数据,我需要添加行的ID并将该ID插入新表 pesonInfo 。查询具有 IGNORE ,以便不重复条目。我有办法完成这项任务吗?

代码:

$files  = directory_map('./assets/csv/');
foreach ($files as $file) :
    $csv = './assets/csv/' . $file;
    $q = "LOAD DATA LOCAL INFILE '$csv'
                    IGNORE INTO TABLE person FIELDS TERMINATED BY ','
                    LINES TERMINATED BY '\n'
                    IGNORE 1 ROWS
                    (personal_name, personal_lastname,personal_country, personal_address,contact_email,dateadded);";
    $this->db->query($q);
    unlink($csv);
endforeach;

1 个答案:

答案 0 :(得分:0)

我看到它的方式,你需要为此再运行2个查询。

第一个查询应该在“LOAD DATA”查询之前运行,类似

$q = $this->db->query("SELECT MAX(id) max_id FROM person")->row();
$max_id = $q->max_id;

在文件中加载数据以获取ID后,您将运行的第二个查询

$q = $this->db->where('id >', $max_id)->get('person');
$result = $q->result();

现在你可以foreach $ result获取行的id,你可以将它存储在一个数组中供以后使用,或者做你想做的任何事情。