使用 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)