我有一个游戏,您可以在其中将分数提交到数据库,但是由于某种原因,提交一直被触发两次。每个条目都加倍。我在这里看到过类似的问题,解决方案与最后的if / else检查有关,但我没有看到问题。
是复制条目或游戏应用程序的PHP代码吗?
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
$port = "xxx";
$link = mysqli_connect($servername, $username, $password, $dbname, $port);
// Security
$playerInitials = mysqli_real_escape_string($link,$_REQUEST['initials']);
$playerEmail = mysqli_real_escape_string($link,$_REQUEST['email']);
$playerScore = mysqli_real_escape_string($link,$_REQUEST['score']);
// Convert Initials to Upper Case
$playerInitialsUC = strtoupper($playerInitials);
$sql = "INSERT INTO xmas (initials, email, score)
VALUES ('$playerInitialsUC', '$playerEmail', '$playerScore')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: " . mysqli_error($link);
}
mysqli_close($link);
?>
答案 0 :(得分:0)
您可以在sql查询中尝试以下方法:
REPLACE的作用与INSERT完全相同,但它不会让sql查询将记录翻倍。
REPLACE into xmas (initials, email, score) values('$playerInitialsUC', '$playerEmail', '$playerScore')
您可以告诉我它是否无效或不是您想要的:)
或者您可以将此查询添加到代码末尾以使行唯一:(不确定这一行):
ALTER TABLE xmas ADD UNIQUE( `initials`, `email`, `score`)
答案 1 :(得分:0)
是的,事实证明我的“提交”按钮过于敏感,点击多次注册。谢谢大家。