2014-10-02 43 views
0

毕竟IDS我从CSV导入数据,我需要得到加行的id和插入ID为新表pesonInfo。该查询有IGNORE为了不重复条目。我有什么方法可以完成这项任务吗?笨2.2,MySQL的 - 获取CSV导入

代码:

$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; 

回答

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,您可以将其存储在数组中供以后使用或执行任何您想要的操作。