Php 如何获取更新行的ID行?

Php 如何获取更新行的ID行?,php,mysql,Php,Mysql,这是我的疑问: INSERT INTO table (value) VALUES (value) ON DUPLICATE KEY UPDATE value=value 使用mysql\u insert\u id()我获得了新的插入id,但是如何更新行的id呢 我尝试了mysql\u insert\u id(),但对于更新的行,我得到了0。没有办法做到这一点。您可以从value=value的表中选择id 既然你已经有了一个WHERE语句,你可以用不同的查询来选择它mysql\u insert\

这是我的疑问:

INSERT INTO table (value) VALUES (value) ON DUPLICATE KEY UPDATE value=value
使用
mysql\u insert\u id()
我获得了新的插入id,但是如何更新行的id呢


我尝试了mysql\u insert\u id(),但对于更新的行,我得到了0。

没有办法做到这一点。您可以从value=value的表中选择id

既然你已经有了一个
WHERE
语句,你可以用不同的查询来选择它
mysql\u insert\u id()
完全按照它所说的做。从插入中获取ID。

从MySQL 5.1.12开始。MySQL的最后一个插入id函数将返回插入和更新操作的自动增量字段值。

“请签出此页面:
在页面底部,他们解释了如何通过向MySQL函数传递表达式使最后一个插入ID对更新有意义。”

您将使用MySQL\u INSERT\u ID()php函数获得插入ID

但是,当与ON DUPLICATE KEY UPDATE结合使用时,如果希望mysql_insert_id()为您提供已更新的密钥,而不是生成已插入的新密钥,则必须执行更多操作

将SQL更改为

INSERT INTO table (value) VALUES (value) 
       ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id),value=value;

查看更多信息

我认为MySQL不可能想查看发布的答案。过去也有过同样的问题。我总是在之后选择。在查询“关于重复密钥更新…”中更新的行的上次更新ID。Leonardo该页面上的最后一个示例向您展示了如何执行此操作