在我的User表中,我将phone设置为唯一。因此,当我插入重复的电话号码时,我想更新deviceIdregistrationId,并且我想要更新的id。我试过了,但是没有用。

$stmt1 = $db->prepare("INSERT into User (name,phone, deviceId,registrationId) values(:name,:phone, :deviceId,:registrationId)  ON DUPLICATE KEY UPDATE deviceId = :deviceId, registrationId = :registrationId, id=lastInsertId(id)");


谢谢..

最佳答案

与OP聊天后,问题在于更新记录时他没有获得ID。最终的解决方案是使用id=LAST_INSERT_ID(id),因此ON DUPLICATE KEY UPDATE将设置ID,然后使用$db->lastInsertId();获取ID。

$stmt = $db->prepare("INSERT into User (name,phone, deviceId,registrationId) values(:name, :phone, :deviceId,:registrationId)  ON DUPLICATE KEY UPDATE deviceId = :deviceId, registrationId = :registrationId, id=LAST_INSERT_ID(id)");


然后在之后获取插入ID。

$id = $db->lastInsertId();

关于php - 更新重复条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33363567/

10-12 13:55