如何用mysql查询if语句做php表单



我只想检查一个值是否在表(key_list(中,如果它是true/该值在表(key_list(,删除该值并将另一个值插入到另一个表(player_list(中。

这是我的代码:

<!DOCTYPE html>
<head>
<lang
="en">
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
<link href="assets/css/main-css.css" rel="stylesheet">
<script src="assets/js/sweetalert2.min.js"></script>
<script srt="assets/js/jquery-3.5.1.js"></script>
<meta charset="UTF-8">
<link rel="shortcut icon" href="assets/img/icon.png">
<title>BuzzGames | BetaKey</title>
</head>
<body>
<form method="POST" action="signup.php">
<input type="text" name="name" placeholder="dein Minecraft-Name">
<br>
<input type="text" name="key" placeholder="dein Betakey">
<br>
<input type="submit">
</form>
</body>
<?php
$name = $_POST['name'];
$key = $_POST['key'];
$host = "localhost";
$user = "system";
$password = "";
$db = "buzzgames_betakey";
$cxn = mysqli_connect($host, $user, $password, $db);
$qryPlayerGet = mysqli_query($cxn, "SELECT * FROM player_list WHERE username = ('$name')");
$qryPlayerAdd = mysqli_query($cxn,"INSERT INTO player_list('username') VALUES ('$name')");
$qryKeyGet = mysqli_query($cxn,"SELECT * FROM key_list WHERE betakey = '$key'");
$qryKeyRemove = mysqli_query($cxn,"DELETE * FROM key_list WHERE betakey = '$key'");
if (!mysqli_query($cxn, $qryPlayerGet)) {
mysqli_query($cxn, $qryPlayerAdd);
}
if (!mysqli_query($cxn, $qryKeyGet)) {
mysqli_query($cxn, $qryKeyRemove);
}
header("Location: index.php");
?>

INSERT语句的语法错误。应该是:

INSERT INTO player_list (`username`) VALUES (?)

注意列名使用后向引号。除非实体名称与保留关键字冲突,否则这些在技术上是可选的,因此如果需要,可以在此处完全跳过它们。

请注意,这个问题没有被发现,因为您没有检查这些查询的返回值,您只是在运行它们并假设一切正常。

提示:通过在mysqli中启用异常,可以检测并解决许多问题,因此不会轻易忽略由简单错误引起的错误。毫无例外,您必须密切关注返回值,其中许多值表示您必须解决或向用户报告的问题。异常允许更复杂的流控制,因为它们可以"冒泡"到代码的其他部分,在那里处理它们更方便。

最新更新