我每隔5分钟在一个提取xml Feed的文件上运行一个cronjob,此时它只是将该Feed添加到数据库中,所以我可能会在下面。
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);
}
}
答案 0 :(得分: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);
}
}