在 mysql 和 php 中使用重复更新插入时如何知道最后一个操作是插入还是更新?
我正在使用 PHP 和 MySQL。
如果我使用 INSERT ON DUPLICATE UPDATE
SQL 语句,那么我如何知道最后一个操作是成功插入,而不是更新或不成功插入?
假设有问题的表不使用自动增量,因此我无法使用 mysql_insert_id 来帮助我找出答案。
I am using PHP and MySQL.
If I use an INSERT ON DUPLICATE UPDATE
SQL statement, then how do I know if the last operation was an successful insert and not an update or unsuccessful insert?
The assumptions are the table in question does not use an auto increment, so I can't use a mysql_insert_id
to help me find out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要检查 mysql_affected_rows(),它将在插入时返回 1,在更新时返回 2。 根据 mysql 文档。
除非更新没有改变任何东西,在这种情况下它将返回0。
You'll want to check mysql_affected_rows() which will return 1 on an insert and 2 on an update. As per the mysql documentation.
Unless the update does not change anything, in which case it will return 0.