检查最近10秒内是否有重复记录

时间:2015-01-12 22:34:37

标签: php mysqli duplicate-removal

是否可以检查在过去10或20秒内是否插入了重复记录?

至于现在我这样做:

INSERT INTO user_pointshistory (ptimestamp, player, points) VALUES (NOW(),'$playerid',$thisPoints)

我想查看的是来自同一位玩家的记录,并且在过去10秒内已插入完全相同的点数!

可以这样做吗?

-------------编辑--------------

我现在试过这个,但没有运气?我不应该这样做吗?

$sql = "SELECT * FROM user_pointshistory WHERE player='111' AND points=10000 AND ptimestamp < DATE_SUB(NOW(), INTERVAL 10 SECOND)";
$result = mysqli_query($conn,$sql) or die(mysqli_error());
if($row = mysqli_fetch_array($result)){
    echo 'GOT A RECORD';
} else {
    echo 'READY FOR AN RECORD';
    $sql = "INSERT INTO user_pointshistory (ptimestamp, player, points) VALUES (NOW(),'111',10000)";
    mysqli_query($conn,$sql);
}

希望得到帮助并提前致谢:-)

2 个答案:

答案 0 :(得分:1)

以下操作无效,因为$row未定义,您最好使用mysqli_num_rows()检查该行是否存在。

if($row = mysqli_fetch_array($result)){

我会将其替换为:

$numrows = mysqli_num_rows($result); 
  if($numrows > 0){ 
    echo "GOT A RECORD"; 
}

正如您在评论中所说,将<中的ptimestamp < DATE_SUB转为>

答案 1 :(得分:0)

我强烈反对rjdown的响应,因为你应该创建一个时间戳,这样你就可以首先检查存储时间戳的数据库,并在提交新行之前生成新的时间戳。