更新重复条目

Update on duplicate entry

在我的 User table 中,我有 phone 作为唯一。因此,当我插入重复的 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();