SQL 查询更新两次



我正在尝试更新列并将其值增加 1。

我在本地服务器上尝试了这段代码,但实际上它增加了 2,我不知道为什么(我稍后检查列值时发现了这一点(。

define("HOST", "localhost");
define("USERNAME", "root");
define("PASSWORD", "root");
define("DB", "dbname");
$con = new mysqli(HOST, USERNAME, PASSWORD, DB);
if ($con->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$query = "UPDATE `active_games` SET current_question = current_question + 1 WHERE pin_code = " . $pin_code;
if ($result = $con->query($query)) {
echo "Update successfully! <br />";
}
else {
echo "There was an error.. <br />";
}
$con->close();

如果是Chrome预加载功能。您可以尝试更改页面以接受 POST 而不是 GET,并更改链接以反映它。

由于 POST 请求假设您正在发送重要内容,因此 chrome 不使用预加载功能。至少,当我之前遇到这个问题时,它没有这样做。

尝试将代码更改为此代码。

define("HOST", "localhost");
define("USERNAME", "root");
define("PASSWORD", "root");
define("DB", "dbname");
if ($_SERVER['REQUEST_METHOD'] === 'POST') && (isset($_POST['DOIT'])) {
$con = new mysqli(HOST, USERNAME, PASSWORD, DB);
if ($con->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$query = "UPDATE `active_games` SET current_question = current_question + 1 WHERE pin_code = " . $pin_code;
if ($result = $con->query($query)) {
echo "Update successfully! <br />";
}
else {
echo "There was an error.. <br />";
}
$con->close();
}else{
echo '
<form action="?" method="post">
<input type="hidden" name="DOIT" value=1>
<input type="submit" value="Update Current Question">
</form>';
}

我刚刚添加了一个 if 来验证 POST 请求。

最新更新