重复输入的更新

时间:2015-10-27 09:00:53

标签: php mysql prepared-statement

在我的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)");

谢谢..

1 个答案:

答案 0 :(得分:0)

与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();