Php SQL查询插入两次
我正在创建一个测验页面,可以提问,最后会显示最高分表。我通过Ajax访问这个页面来插入用户名和分数,并且插入了两次Php SQL查询插入两次,php,mysql,sql,ajax,Php,Mysql,Sql,Ajax,我正在创建一个测验页面,可以提问,最后会显示最高分表。我通过Ajax访问这个页面来插入用户名和分数,并且插入了两次 <?php $servername = "localhost"; $username = "root"; $password = "pswd"; $dbname = "mydb"; $toJsonArr = array(); // Create connection $conn = new mysqli($server
<?php
$servername = "localhost";
$username = "root";
$password = "pswd";
$dbname = "mydb";
$toJsonArr = array();
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if (isset($_GET["username"])) {
$username = $_GET["username"];
$score = $_GET["score"];
$sql = "INSERT INTO `fullstackQuiz` (`id`, `place`, `username`, `points`, `now`) VALUES (NULL, '0', '$username', '$score', CURRENT_TIMESTAMP);";
$result = $conn->query($sql);
if ($conn->query($sql) === TRUE) {
echo "1";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
} else {
$sql = "SELECT * FROM `fullstackQuiz` ORDER BY `fullstackQuiz`.`points` DESC LIMIT 10";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$toJsonArr[] = $row;
}
} else {
echo "0 results";
}
echo json_encode($toJsonArr);
$conn->close();
}
?>
每次Ajax运行时,出于某种原因,它都会创建两次记录。您重复了两次
$conn->query($sql)
。删除一个,它将工作:
//$result = $conn->query($sql); <== Remove this line.
if ($conn->query($sql) === true) {
echo "1";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
最后,您的查询会受到SQL攻击。改为使用参数化查询。您重复了
$conn->query($sql)
两次。删除一个,它将工作:
//$result = $conn->query($sql); <== Remove this line.
if ($conn->query($sql) === true) {
echo "1";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
最后,您的查询会受到SQL攻击。改用参数化查询。表示。了解有关的语句。即使是这样也不安全!说。了解有关的语句。即使是这样也不安全!
$sql = "INSERT INTO `fullstackQuiz` (`place`, `username`, `points`, `now`)
VALUES (0, '$username', '$score', CURRENT_TIMESTAMP);";