php - 在 mysql 和 php 中对重复更新使用插入时,如何知道最后一个操作是插入还是更新?

标签 php mysql insert-update

我正在使用 PHP 和 MySQL。

如果我使用 INSERT ON DUPLICATE UPDATE SQL 语句,那么我如何知道最后一个操作是成功插入而不是更新或不成功插入?

假设有问题的表不使用自动增量,所以我不能使用 mysql_insert_id 来帮助我找出答案。

最佳答案

您需要检查 mysql_affected_rows(),它将在插入时返回 1,在更新时返回 2。根据 mysql documentation .

if (mysql_affected_rows() == 1) //INSERT
elseif (mysql_affected_row() == 2) //UPDATE

除非更新没有改变任何东西,在这种情况下它将返回 0。

关于php - 在 mysql 和 php 中对重复更新使用插入时,如何知道最后一个操作是插入还是更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249191/

相关文章:

mysql - 是否有一个引用表显示哪些 mysql 版本受哪些 rails 版本支持?

ios - 如何以正确的方式更新数组中的所有项目

mysql - 从源表更新目标表中具有相同名称记录的记录

php - 没有MySQL可以在网站内搜索任何单词吗?

php - 使用 if elseif else 列出名称

php - 将大 xls 文件导入 mysql 数据库

mysql - 重复 key 更新时插入...从...中选择

php - MySql关系型数据库困惑

mysql - 在 MySQL 中使用 LIMIT 和 OFFSET 时返回哪些行?

mysql - 使用 mysql 查询进行字符串破坏/剥离