php - 如何获取重复条目的ID?

标签 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)?

最佳答案

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

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

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

如果您只是想失败,但有现有的 ID,则失败,然后执行 SELECT 以获取现有的条目。

关于php - 如何获取重复条目的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299487/

相关文章:

php - twilio 捕获错误不起作用

php - 图片文件权限不起作用

mysql - sequelize 返回 blob 作为文本

python - Django 模型尝试自动创建主键字段,即使它已经指定

mysql - 检测到无效模式 - 没有类型或 db_type 元素 Dreamfactory

php - 尝试为我的网站构建一个搜索引擎

PHP APC : What happens when APC cache is full?

php - 录制视频并将其保存到php服务器

php - php.ini 扩展目录中的 "./"指向哪里?

mysql - 加快 SQL 查询