php-mysql重复行

时间:2019-04-26 11:26:39

标签: php mysql

  

我在iOS-PHP应用程序中做了一个与众不同的功能。

(当然,userId和session也在get参数中)

调用 like.php?id = 10 有两件事

  • 检查内容10是否已被点赞,
  • 如果没有,则在数据库表中添加一行

调用 unlike.php?id = 10 会删除用户的表情。

—————

问题是,有时如果用户喜欢-不喜欢给定内容的速度太快,我的表将收到两行给定的喜欢的行。

————

我认为这是因为对 like.php 文件的两个请求恰好同时发生。.

我该怎么做才能防止来自同一用户的多行?

2 个答案:

答案 0 :(得分:1)

在数据库表中使用UNIQUE索引作为用户ID和内容ID。数据库不会在同类表中插入具有相同内容的同一用户。

答案 1 :(得分:0)

对我来说,有两件事:  1.禁用单击按钮的选项,直到请求完成(由于使用简单的JS)  2.锁定表以执行操作,但保持表可见以供执行查询时读取。

您甚至可以同时使用这两个选项,这样可以避免两个不同的用户同时单击它。