首页 > 解决方案 > ajax 工作,但它不插入到我的 sql 查询 (js/php)

问题描述

我不明白 ajax 是否以这种方式工作,但数据不会添加到我的 mysql 数据库中。我在 chrome 浏览器中检查了网络选项卡,发现数据已被转发。我试过这样

脚本.js:

$(".btn_ranking").click(function (e) {
    e.preventDefault();

    var name = localStorage.getItem('name');
    var time = localStorage.getItem('timer_end');

    $.ajax({
        url: "php/file.php",
        method: "POST",
        data: { "name": name, "time": time }
    })
});

文件.php:

<?php

require_once "connect.php";

$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

$name = $_POST['name'];
$time = $_POST['time'];

if ($polaczenie->connect_errno != 0) {
    echo "Error: " . $polaczenie->connect_errno;
} else {

    if ($rezultat = @$polaczenie->query("INSERT INTO ranking (id, name, time) VALUES (NULL, $name, $time)")) {
        echo "ok";
    }
}

?>

标签: javascriptphpajax

解决方案


首先,您最好使用PrepareStatement来传递参数,而不是直接将它们写入您的 sql。

对于您当前的代码,请尝试更改为以下代码

if ($rezultat = @$polaczenie->query("INSERT INTO ranking (id, name, time) VALUES (NULL, '".$name."', '".$time."')")) {
    echo "ok";
}

推荐阅读