-2
<?php
session_start();
include('MySQL.php');

$Name = $_SESSION['Name'];
$Check = 'SELECT * FROM Users WHERE FName = "'.$Name.'"';
$Query = mysql_query($Check);

if($Row = mysql_fetch_assoc($Query))
{
    $Admin = $Row['Admin'];

    if($Admin == 1)
    {
        $ID = $_POST['ID'];
        $Username = $_POST['User'];
        $EMail = $_POST['EMail'];
        $FName = $_POST['FName'];
        $LName = $_POST['LName'];
        $IP = $_POST['IP'];
        $Active = $_POST['Active'];
        $Admin = $_POST['Admin'];

         mysql_query('UPDATE Users SET Username="'.$Username.'", EMail="'.$EMail.'", FName="'.$FName.'", LName="'.$LName.'", IP="'.$IP.'", Active="'.$Active.'", Admin="'.$Admin.'"');
        $Val['Msg'] = 'Those Values Have Been Updated';
    }
    else
    {
        $Val['Re'] = 'Home.php';    
    }
}

echo json_encode($Val);
?>

每次我运行查询时都没有任何反应。我知道这不是我的 jQuery,所以不要担心,因为我检查了三次并且我的所有变量都很好。如果我将它们取下或戴上,MySQL 行标题周围的引号没有任何作用。我已经尝试了几个小时,但似乎找不到解决方法!

4

2 回答 2

1

我相信这是查询末尾的 ID。当它很可能是一个整数并且不应该有引号时,您在它周围使用引号。

-- 编辑:似乎代码已更改,WHERE 部分不再存在。

于 2013-01-20T03:33:23.710 回答
0

您必须按照以下几个步骤进行调试。

  1. 回显'UPDATE Users SET Username="'.$Username.'", EMail="'.$EMail.'", FName="'.$FName.'", LName="'.$LName.'", IP="'.$IP.'", Active="'.$Active.'", Admin="'.$Admin.'"'并查看查询是否正确。
  2. 复制查询并在 PHPMyAdmin 上运行它并查看查询是否被执行并更新您想要的行。
  3. 您的查询缺少 where 子句。因此,每次执行查询时,您的整个表都会更新。
  4. 试试下面的查询。

"UPDATE Users SET Username='".$Username."', EMail='".$EMail."', FName='".$FName."', LName='".$LName."', IP='".$IP."', Active='".$Active."', Admin='".$Admin."' "

于 2013-01-20T03:52:27.817 回答