我对 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/