【发布时间】:2013-05-31 00:30:33
【问题描述】:
我正在尝试使用 PHP 和 AJAX 更新我的数据库中的字段
我已经测试并发现正在发送正确的数据,但处理更新的 PHP 工作不正常。
所发生的只是我收到了有条件的else 响应。
我需要根据用户输入的内容更新数据库。
就像我说的,我得到的只是else 响应。
$youruname = $_POST['youruname'];
$selectedplayer = $_POST['selectedplayer'];
$selPlayerUname = $_POST['selPlayerUname'];
$flag = "";
$itStatus = "";
$checkit = mysqli_query($conn,"SELECT it FROM login WHERE uname='$selPlayerUname'");
while($row = mysqli_fetch_array($checkit))
{
$itStatus = $row["it"];
}
if($itStatus == "not it")
{
mysqli_query("UPDATE login SET it = CASE WHEN uname = '$youruname' THEN 'not it' ELSE 'it' END WHERE uname IN ('$youruname', '$selPlayerUname')");
$flag = "success";
}
else if($itStatus == "it")
{
$flag = "nope";
}
else
{
$flag = "error";
}
echo json_encode(array("message" => $flag, "tagged" => $selectedplayer));
mysqli_free_result($checkit);
mysqli_close($conn);
【问题讨论】:
-
var_dump($iStatus) 它返回什么
-
警告:您的查询容易受到 SQL 注入的攻击。请切换到prepared statements。
-
在你的更新查询中你有'SET it = CASE'如果CASE是一个列没有问题,但是,如果不是?此外,您的代码容易受到 sql 注入的影响。了解如何使用准备好的语句。
-
一旦我开始工作,我将切换到准备好的语句。我已经了解了很多关于注射的知识。我知道我需要,但我只是一次解决一个问题。不过还是谢谢你的关心
-
另一件事,向您的查询添加错误输出...例如,您可以使用
...or die(mysqli_error());。它会告诉您您的查询问题是什么。请不要让安全漏洞留到最后。
标签: php ajax database json sql-update