Php MySQL中的AJAX HTTP请求问题
我是AJAX的新手,我尝试用AJAX进行一个简单的MySQL查询,但没有成功,响应是500个内部服务器错误 我在这个论坛和其他网站上搜索了答案,但我从来没有找到我问题的答案 基本上,在我的应用程序上,用户编写一个伪脚本并单击“播放”,一个AJAX函数称为onClick,这是一个进行简单MySQL查询的函数:Php MySQL中的AJAX HTTP请求问题,php,mysql,Php,Mysql,我是AJAX的新手,我尝试用AJAX进行一个简单的MySQL查询,但没有成功,响应是500个内部服务器错误 我在这个论坛和其他网站上搜索了答案,但我从来没有找到我问题的答案 基本上,在我的应用程序上,用户编写一个伪脚本并单击“播放”,一个AJAX函数称为onClick,这是一个进行简单MySQL查询的函数: $.ajax({ url: "check_pseudo.php", method: "GET", data : { p
$.ajax({
url: "check_pseudo.php",
method: "GET",
data : { pseudo : input},
error: function() {
alert("Une erreur est survenue");
},
success: function(response) {
alert(response);
}
});
PHP/MySQL:
$pseudo = $_GET["pseudo"];
$req = $bdd->prepare('SELECT ? FROM pseudo');
$req->execute(array($pseudo));
$reponse = $req->fetch();
if ($reponse) {
echo "This pseudo does exist";
}else{
echo "Pseudo not found";
}
此代码在控制台调试器中向我发送“GET 500 Internal Server Error”
我怎样才能解决这个问题
谢谢:你不能这样做:
$req = $bdd->prepare('SELECT ? FROM pseudo');
$req->execute(array($pseudo));
使用“准备”和“准备”?在中,它构建了一个需要额外输入的查询。你需要填那个吗?用什么东西。退房
您需要执行以下操作:
$req = $bdd->prepare('SELECT ? FROM pseudo');
$req->bind_param("s", $pseudo);
$req->execute();
…但即使这样似乎也不太正确。通常我们不会在查询参数中传递要选择的字段。我们通常会这样做:
$.ajax({
url: "users.php",
method: "GET",
data : {user_id: input_id},
error: function() {
alert("Error! ...Something went wrong.");
},
success: function(response) {
alert(response);
}
});
那么在users.php中,我们将有:
$user_id = $_GET["user_id"];
$req = $bdd->prepare('SELECT * FROM users where user_id=?');
$req->bind_param("i", $user_id);
$req->execute();
$reponse = $req->fetch();
if ($reponse) {
echo "This user does exist";
} else {
echo "User not found";
}
500服务器错误,您的PHP有问题。尝试替换$req->executearray$pseudo;使用$req->bind_参数',$pseudo$请求->执行;。如果这还不能解决问题,请尝试从下到上删除部分PHP代码,直到没有500个错误为止,以找到卷发点。或者看看你的服务器日志。查询可能应该是SELECT*FROM pseudo,其中someColumn=?或者SELECT*FROM someTable,其中pseudo=?@Barmar我不敢相信我错过了。