如何在 PHP 中查找查询“INSERT ... ON DUPLICATE KEY UPDATE...”的哪一部分成功了吗?

发布于 2024-11-06 16:03:47 字数 193 浏览 2 评论 0原文

我有一个没有 AUTO_INCRMENT 字段的 MySQL 表。在 PHP 中,我运行这个简单的查询:

mysql_query("INSERT INTO table ... ON DUPLICATE KEY UPDATE ....");

我需要能够检测是否将新行插入到表中或者是否更新了旧行?有可能吗?

I have MySQL table that doesn't have AUTO_INCREMENT field. In PHP I run this simple query:

mysql_query("INSERT INTO table ... ON DUPLICATE KEY UPDATE ....");

I need to be able to detect if a new row was inserted into table or if an old row was updated ? Is it possible somehow ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪失控 2024-11-13 16:03:47

mysql_affected_rows() 在插入时返回 1(因为它插入了一行),在更新时返回 2(因为它首先尝试插入,然后更新,或类似的情况)。

那是当您只是尝试添加一行时。您也可以在多行插入上使用 ON DUPLICATE KEY UPDATE 子句,然后您将获得所有行的 1 和 2 的总和。

mysql_affected_rows() returns 1 on an insert (because it inserted one row) and 2 on an update (because first it tried to insert, and then it updated, or something like that).

That is when you're just trying to add one row. You can have the ON DUPLICATE KEY UPDATE clause on multi-row inserts too, and then you'll get the sum of 1's and 2's for all the rows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文