【问题标题】:PHP submitting entries to database twicePHP两次向数据库提交条目
【发布时间】:2018-12-25 09:45:31
【问题描述】:

我有一个游戏,您可以在其中将您的分数提交到数据库,但由于某种原因,提交不断被触发两次。每个条目都加倍。我在这里看到过类似的问题,解决方案与最后的 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);

?>

【问题讨论】:

标签: php mysql ajax mysqli


【解决方案1】:

你可以在你的 sql 查询中试试这个:

REPLACE 与 INSERT 完全一样,但它不会让 sql 查询加倍记录。

REPLACE into xmas (initials, email, score) values('$playerInitialsUC', '$playerEmail', '$playerScore')

如果它不起作用或者不是你想要的,你可以告诉我:)

或者您可以将此查询添加到代码的末尾以使行唯一:(不确定这一点):

ALTER TABLE xmas ADD UNIQUE( `initials`, `email`, `score`)

【讨论】:

    【解决方案2】:

    是的,事实证明我的提交按钮有点过于敏感,并且点击次数被多次注册。谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 2020-11-09
      • 2018-11-18
      • 1970-01-01
      • 2013-03-02
      相关资源
      最近更新 更多