这似乎是一个如此简单的问题,但谷歌似乎在这个话题上找不到太多。
出于缓存原因,我想运行一个查询让用户喜欢一些东西:
INSERT INTO tbl_review_vote (user_id,review_id,vote) VALUES(:uid,:rid,:vote) ON DUPLICATE KEY UPDATE vote=:vote
但是然后从服务器响应中了解是否插入或更新了类似内容,以便我可以将 a 预先聚合likes
到用户评论记录中。
有没有这样做的好方法?
使用 ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为 1,如果更新现有行,则值为 2。然后,您可以查看 mysqlLAST_INSERT_ID()
和 API 的 last_insert_id 之间的区别,以确定它是插入还是更新。
查看它是什么的另一种方法是添加一个update_count
随查询递增的列: update_count = update_count + ;
,或者,a timestamp
withoutON UPDATE CURRENT_TIMESTAMP
试试这些 php 函数:
mysql_affected_rows() 或 mysqli_affected_rows()