如何获取更新行的ID?

25 浏览
0 Comments

如何获取更新行的ID?

我想知道更新行的ID,我尝试了以下代码:

$sql = $db->prepare("UPDATE `timeslots` SET `service` = ?  WHERE `status` = ?");
$sql->bind_param("is", 0, "open");
$sql->execute();
if ($sql->execute()) {
   echo "ID: ".$db->insert_id."";
}

但结果始终是这样,而不是ID:

ID: 0
ID: 0

0
0 Comments

问题的出现原因是在执行一个UPDATE查询时,没有生成新的ID,因此无法使用$insert_id来获取ID。

解决方法是通过重新生成ID来欺骗MySQL提供这个值。可以使用以下代码来实现:

$sql = $db->prepare("UPDATE `timeslots` 
    SET `service` = ?, Id=LAST_INSERT_ID(Id) 
    WHERE `status` = ?");

更多解决方法可以参考文档中的链接:How to get ID of the last updated row in MySQL?

0