更新重复条目
Update on duplicate entry
在我的 User
table 中,我有 phone
作为唯一。因此,当我插入重复的 phone 数字时,我想更新 deviceId
、registrationId
并且我想要更新的 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();
在我的 User
table 中,我有 phone
作为唯一。因此,当我插入重复的 phone 数字时,我想更新 deviceId
、registrationId
并且我想要更新的 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();
$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();