是否可以检查在过去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);
}
希望得到帮助并提前致谢:-)
答案 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的响应,因为你应该创建一个时间戳,这样你就可以首先检查存储时间戳的数据库,并在提交新行之前生成新的时间戳。