2012-07-11 84 views
1

我正在一個正在拉動xml供稿的文件上每5分鐘運行一次cronjob,此刻它只是將該供稿添加到數據庫,因此我可能會得到下面的內容。避免在codeignitor活動記錄的數據庫中插入重複值

title, this is a new title 
title, this is another title 

但cron的運行時我有問題,我再次得到以下

title, this is a new title 
title, this is another title 
title, this is a new title 
title, this is another title 

,當它再次運行

title, this is a new title 
title, this is another title 
title, this is a new title 
title, this is another title 
title, this is a new title 
title, this is another title 

等等.....

我只希望它插入一個記錄,如果他們不是已經在數據庫中有相同的標題,所以我的cron作業將保持運行當它注意到一個不同的標題時,它將它插入到數據庫中。

我已經試過很多不同的選項這樣的not_like等

有人能告訴我這樣做的最好辦法???

三江源;)

我設法用下面的,但絕對不是最好的辦法待辦事項去做它

function addResults($data){ 

    $this->db->select('title'); 
     $this->db->from('articles'); 
     $this->db->where('title = ' . "'" . $data['title'] . "'"); 
     //$this->db->limit(1); 
     $query=$this->db->get(); 
     echo $query->num_rows(); 
     if($query->num_rows()){ 

    }else{ 
     echo 'New Record ' . $data['title']; 
     $this->db->set('date', 'NOW()', FALSE); 
      $this->db->insert('articles', $data); 
     } 

    } 

回答

2

我知道我是一個有點晚了黨,但這裏有一個稍微更好的方法來做到這一點:

function addResults($data) 
{ 
    $result = $this->db->get_where('articles', array('title ' => $data['title'])); 
    $inDatabase = (bool)$result->num_rows(); 

    if (!$inDatabase) 
    { 
     echo 'New Record ' . $data['title']; 
     $this->db->set('date', 'NOW()', FALSE); 
     $this->db->insert('articles', $data); 
    } 
} 
+0

+1給你。嘗試和處理我的代碼。 TNX – jned29 2014-10-16 02:39:40