【发布时间】:2015-03-10 19:19:24
【问题描述】:
是否可以检查过去 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);
}
希望得到帮助并提前感谢:-)
【问题讨论】:
-
您是否在行中存储任何类型的时间戳?那肯定会有所帮助。
-
Ups,是我发布的错误 SQL。刚刚用正确的 SQL 编辑了我的帖子:-/ ptimestamp 是 DATETIME
-
这个答案可能对stackoverflow.com/a/4056660有帮助
-
这个
if($row = mysqli_fetch_array($result)){不起作用,$row未定义。我会用$numrows=mysqli_num_rows($result); if($numrows > 0){ echo "GOT A RECORD"; }替换它,我很确定它会起作用。 @曼萨 -
@Fred-ii- 好的,到目前为止一切都很好,但现在我一直得到“记录”?我错过了什么!?
标签: php mysqli duplicate-removal