如何理解MySQL是否已更新或插入

时间:2013-10-04 14:55:53

标签: php mysql sql

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

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

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

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

这样做有好办法吗?

2 个答案:

答案 0 :(得分:1)

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

另一种查看内容的方法是添加一个update_count列,该列随您的查询增加:update_count = update_count + ;,或者timestamp没有ON UPDATE CURRENT_TIMESTAMP < / p>

答案 1 :(得分:0)

试试这些php函数:

mysql_affected_rows()函数 要么 mysqli_affected_rows()