Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL查询插入两次_Php_Mysql_Sql_Ajax - Fatal编程技术网

Php SQL查询插入两次

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

我正在创建一个测验页面,可以提问,最后会显示最高分表。我通过Ajax访问这个页面来插入用户名和分数,并且插入了两次

<?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);";