2014-10-01 107 views
1

我想配置一个SQL查询,如果记录存在,它不会再次插入。Codeigniter MYSQL QUERY insert_string避免重复

在此先感谢。

$name="John"; 
$value="login"; 

     $this->db->query(
      $this->db->insert_string("user_log", array(
       "user_log_user_id" => $this->session->userdata("user_id"), 
       "user_log_name"  => $name, 
       "user_log_value" => $value, 
       "user_log_date"  => time() 

     )) 

如果它具有相同的时间和相同的活动,它不应插入到日志信息表中。例如:
例如。

CURRENT ISSUE:

No User   Activity  Time 
-- ---------- ----------  ---------- 
1 John   Login   01/10/2014 10:55 
2 John   Login   01/10/2014 10:55 
3 John   Login   01/10/2014 10:55 
4 John   Logout   01/10/2014 11:00 
5 John   Logout   01/10/2014 11:00 

预期的结果:

No User   Activity  Time 
-- ---------- ----------  ---------- 
1 John   Login   01/10/2014 10:55 
2 John   Logout   01/10/2014 11:00 
+0

修改SQL,以便它使用'num_rows'或'计数()',或将您列UNIQUE以避免重复。 – 2014-10-01 04:47:00

+0

你是否意味着我需要首先执行一个'SELECT'查询,然后将'活动'列,'时间'列和'User_id'列插入并设置为'UNIQUE'? 'UNIQUE'表达式是这三列的混合体。@ Fred-ii- – xyonme 2014-10-01 04:58:40

+0

意思是说,在你的数据库接口中;修改您的列并将约束设置为UNIQUE。我不太了解CI,为了直接作为控制器来完成它,但它可以在SQL本身完成。 – 2014-10-01 05:03:39

回答