$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)?
最佳答案
无法使用 INSERT 获取现有(重复)条目的 ID。
仍然,您不应该执行 SELECT + INSERT,因为您需要锁定表以实现并发(以确保 SELECT 和 INSERT 之间没有任何更改)。
在这种情况下,如果插入失败,而您想更新现有记录,请使用 INSERT ... ON DUPLICATE KEY UPDATE .
如果您只是想失败,但有现有的 ID,则失败,然后执行 SELECT 以获取现有的条目。
关于php - 如何获取重复条目的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299487/