2013-03-17 50 views
0

使用笨和表与唯一键约束如下:为什么last_insert_id()会在失败的插入中返回一个值?

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

您是否阅读过文档? – Kermit 2013-03-17 16:57:27

回答

3

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

+0

出于某种原因,我总是尽管它是最后一次插入尝试的ID,如果它失败了0,呃。谢谢。 – Will 2013-03-17 18:31:18

相关问题