Javascript ajax可以工作,但它不能';t插入我的sql查询(js/php)
我不知道ajax是否可以这样工作,但数据不会添加到我的mysql数据库中。我检查了chrome浏览器中的“网络”选项卡,发现数据已转发。 我试过这样做 script.js:Javascript ajax可以工作,但它不能';t插入我的sql查询(js/php),javascript,php,ajax,Javascript,Php,Ajax,我不知道ajax是否可以这样工作,但数据不会添加到我的mysql数据库中。我检查了chrome浏览器中的“网络”选项卡,发现数据已转发。 我试过这样做 script.js: $(".btn_ranking").click(function (e) { e.preventDefault(); var name = localStorage.getItem('name'); var time = localStorage.getItem('timer_end');
$(".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 }
})
});
file.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";
}
}
?>
首先,最好使用PrepareStatement传递参数,而不是将它们直接写入sql 对于当前代码,请尝试更改为以下代码
if ($rezultat = @$polaczenie->query("INSERT INTO ranking (id, name, time) VALUES (NULL, '".$name."', '".$time."')")) {
echo "ok";
}
你应该像下面那样尝试
$(".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 } //Remove double quote
})
});
$name应该用引号括起来,对吗?是一个字符串吗?看看
@
s,你得到了什么?如果您在站点上显示错误时遇到问题,请关闭错误显示,不要仅抑制错误。您仍然应该记录它们,以便知道会发生什么。您对SQL注入持开放态度,$name,
需要被引用。这两个问题都可以通过参数化查询来解决。skorzystaj PDOZ删除@
符号-可能有错误隐藏在那里,但您正在使其静音?