1

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

4

1 回答 1

4

它返回通过此连接进行的最后一次成功插入的 id。

于 2013-03-17T16:59:29.490 回答