Php MySQL中的AJAX HTTP请求问题

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的新手,我尝试用AJAX进行一个简单的MySQL查询,但没有成功,响应是500个内部服务器错误

我在这个论坛和其他网站上搜索了答案,但我从来没有找到我问题的答案

基本上,在我的应用程序上,用户编写一个伪脚本并单击“播放”,一个AJAX函数称为onClick,这是一个进行简单MySQL查询的函数:

$.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我不敢相信我错过了。