php - ajax调用无法加载更新列信息的php脚本

标签 php javascript mysql ajax

我对 php 脚本进行了 ajax 调用,该脚本进入数据库并更新一行信息。如果我在浏览器中输入链接以及我想要更改的提供的信息,那么它可以正常工作,没有问题。我有几个 ajax 调用以与此相同的方式设置,并且它们都可以正常工作。无法弄清楚为什么对 php 脚本的 ajax 调用无法执行任何操作。

JavaScript 调用:

function updateInfo(userID, email, username, password){
    var validGT;
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange=function()
    {
        if(xmlHttp.readyState==4){
            if (xmlHttp.status == 200){
                validGT = xmlHttp.responseText;
                    if(validGT == "Success!"){
                        var error = document.getElementById("update-error-message");
                        error.innerHTML = "Updated!";
                    }else{
                        var error = document.getElementById("update-error-message");
                        error.style.color = "Red";
                        error.innerHTML = "error occured";
                    }
            }
        }
    }
    xmlHttp.open("GET", "updateInfo.php?userID=" + userID + "&email=" + email + "&gamertag=" + gamertag + "&password=" + password, true);
    xmlHttp.send();
}

PHP 脚本:

****connect to database and such****
$userID = $_GET{"userID"};
$email = $_GET{"email"};
$username = $_GET{"username"};
$password = $_GET{"password"};

if($password != "null"){
    mysql_query("UPDATE users SET email='$email', username='$username', password='$password' WHERE uid='$userID'") or die(mysql_error());
    echo "Success!";
}else{
    mysql_query("UPDATE users SET email='$email' AND username='$username' WHERE uid='$userID'") or die(mysql_error());
    echo "Success!";
}

mysql_close($con);

我从 ajax 调用中得到了一个响应:“成功!”然而它实际上并没有对数据库中的信息做任何事情。我使用 firebug 来确保信息正确传递,确实如此。所以我在这里不知所措。怎么了?大家有什么想法吗?

最佳答案

这看起来很奇怪

$userID = $_GET["userID"];
$email = $_GET["email"];
$username = $_GET["username"];
$password = $_GET["password"];

如果这没有帮助,请尝试调试/回显查询以查看发生了什么

也改变

mysql_query("UPDATE users SET email='$email' AND username='$username' WHERE uid='$userID'") or die(mysql_error());

mysql_query("UPDATE users SET email='$email', username='$username' WHERE uid='$userID'") or die(mysql_error());

但是由于您从未收到任何 sql 错误,因此密码似乎始终为“null”

关于php - ajax调用无法加载更新列信息的php脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164164/

相关文章:

php - 选择日期在本周内的 SQL 项

php - 将文件包含在数组中

javascript - div动画不重复点击jquery

使用符号链接(symbolic link)扩展 datadir 到另一个数据库后,Mysql 无法启动

mysql - 需要使用不同条件从表的列中的单行中进行多次 id 计数

php - 如何使用 OAuth 对话框在移动 Web 应用程序上使用 facebook 连接

php - 如何仅通过一个查询更新一个表列中的多个值?

Javascript:如何使用 promise 迭代数组?

javascript - 在选择中渲染巨大的列表

php - MYSQL 需要建议将存储在 EST 时区数据库中的日期迁移到 UTC 时区