【问题标题】:MySQL Update Not Working With If StatementMySQL 更新不适用于 If 语句
【发布时间】:2013-05-28 21:32:51
【问题描述】:

我正在使用 AJAX 和 JSON 更新我的数据库,但数据库中的值没有更新。

我知道发送了正确的值,并且返回了正确的值,但是我的 MySQL 更新没有做任何事情。它在 if 语句中。

PHP

$youruname = mysql_real_escape_string($_POST['youruname']);
$selectedplayer = mysql_real_escape_string($_POST['selectedplayer']);

$flag = "";
$itStatus = "";

$checkit = mysql_query("SELECT it FROM login WHERE uname='$selectedplayer'");

while($row = mysql_fetch_array($checkit))
{
    $itStatus = $row['it'];
}

if($itStatus === "not it")
{
    mysql_query("UPDATE login SET it='not it' WHERE uname = '$youruname'");
    mysql_query("UPDATE login SET it='it' WHERE uname = '$selectedplayer'");

    $flag = "success";
}
else if($itStatus === "it")
{
    $flag = "nope";
}
else
{
    $flag = "error";
}


echo json_encode(array("message" => $flag, "tagged" => $selectedplayer));

【问题讨论】:

  • 使用mysql_error() 捕获任何错误
  • 不要使用 mysql_ 系列函数 - 它们已被弃用。使用 mysqli_,或者更好的是 PDO。
  • 我到处寻找如何使用 PDO,但没有找到任何资源。如果您有关于如何使用它以及在哪里学习使用它的说明的链接,我们将不胜感激。
  • 刚刚更新代码以使用mysqli_感谢您的建议
  • 对您问题的编辑无效。请发表评论。

标签: php mysql ajax database json


【解决方案1】:

这可能不是您问题的一部分,但您可以将其合二为一,而不是执行两个更新语句,

UPDATE login SET it='not it' WHERE uname = '$youruname'
UPDATE login SET it='it' WHERE uname = '$selectedplayer'

进入

UPDATE login 
SET it = CASE WHEN uname = '$youruname' THEN 'not it' ELSE 'it' END
WHERE uname IN ('$youruname', '$selectedplayer')

【讨论】:

  • 很高兴知道,但没有解决问题。
  • @copilot0910 我已经告诉过你答案不是问题的一部分:)
【解决方案2】:

好的,我想通了。

我正在调用数据库,试图选择一个不存在的值。

基本上,我在搜索错误的值。

我的代码是正确的。

感谢所有提供帮助的人。

【讨论】:

    猜你喜欢
    • 2018-08-23
    • 2012-08-29
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多