如何获取重复条目的ID?

时间:2012-04-24 13:58:48

标签: php mysql

$query = "INSERT IGNORE INTO `user` (`name`, `email`) VALUES ( '".$name."', '".$email."')";
$res = mysql_query($query) or die("Query failed ".mysql_error() );
$last id = mysql_insert_id();

如果存在重复的条目,则mysql_insert_id()返回0。

有没有办法获取重复条目的ID?或者我必须做2个查询(SELECT + INSERT)?

1 个答案:

答案 0 :(得分:1)

INSERT无法获取现有(重复)条目的ID。

但是,您不应该执行SELECT + INSERT,因为您需要锁定表以实现并发(以确保SELECT和INSERT之间没有任何更改)。

在这种情况下,如果插入失败,并且您想要更新现有记录,请使用INSERT ... ON DUPLICATE KEY UPDATE

如果您只想失败,但拥有现有ID,则失败,并执行SELECT以获取现有条目。