使用codeigniter和具有唯一键约束的表,如下所示:
UNIQUE KEY `user_identity_unique` (`site_id`,`user_id`,`event_id`)
然后使用以下方法将数据插入该表:
$this->db->insert( 'events', $data );
return $this->db->insert_id();
当插入因键约束而失败时,$this->db->insert_id()
仍然返回一个值,即使没有插入任何内容。我很肯定mySQL因为调用$this->db->_error_message()
...
Duplicate entry '267-83880-07' for key 'user_identity_unique'
这似乎是不正确的行为 - 任何熟悉此事的人都可以解释一下吗?为什么last_insert_id仍然会返回一个值? (在这种情况下,一个完全不相关的行的id)
答案 0 :(得分:3)
它返回通过此连接进行的最后一次成功插入的id。