0

这似乎是一个如此简单的问题,但谷歌似乎在这个话题上找不到太多。

出于缓存原因,我想运行一个查询让用户喜欢一些东西:

INSERT INTO tbl_review_vote (user_id,review_id,vote) VALUES(:uid,:rid,:vote) ON DUPLICATE KEY UPDATE vote=:vote

但是然后从服务器响应中了解是否插入或更新了类似内容,以便我可以将 a 预先聚合likes到用户评论记录中。

有没有这样做的好方法?

4

2 回答 2

2

使用 ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为 1,如果更新现有行,则值为 2。然后,您可以查看 mysqlLAST_INSERT_ID()和 API 的 last_insert_id 之间的区别,以确定它是插入还是更新。

查看它是什么的另一种方法是添加一个update_count随查询递增的列: update_count = update_count + ;,或者,a timestampwithoutON UPDATE CURRENT_TIMESTAMP

于 2013-10-04T15:00:58.580 回答
0

试试这些 php 函数:

mysql_affected_rows() 或 mysqli_affected_rows()

于 2013-10-04T15:08:13.320 回答