无法通过php更新sql表

无法通过php更新sql表,php,sql,sql-server,ssms-2017,Php,Sql,Sql Server,Ssms 2017,这是我用来尝试和更新记录的代码。我看不到任何问题,但它不会抛出错误并声明它已成功运行。我已经尝试了其他两种方法,它们都是这样做的,只是不更新MSSQL表中的行。数据库/表在我运行Windows 10和IIS的计算机上是本地的(我知道!!) 成功地 更新。 编辑用户 您是否直接在MSSQL管理工作室中尝试了该查询 之后,您会发现它工作正常,请尝试“回显”您的POST变量,以查看是否正确获取它们。我没有看到任何插入。相反,您只使用UPDATE,这意味着只修改现有记录。这是你想要的吗 $sql =

这是我用来尝试和更新记录的代码。我看不到任何问题,但它不会抛出错误并声明它已成功运行。我已经尝试了其他两种方法,它们都是这样做的,只是不更新MSSQL表中的行。数据库/表在我运行Windows 10和IIS的计算机上是本地的(我知道!!)


成功地
更新。
编辑用户

您是否直接在MSSQL管理工作室中尝试了该查询


之后,您会发现它工作正常,请尝试“回显”您的POST变量,以查看是否正确获取它们。

我没有看到任何
插入。相反,您只使用
UPDATE
,这意味着只修改现有记录。这是你想要的吗

 $sql = "UPDATE users
         SET id = :id,
           firstname = :firstname,
           lastname = :lastname,
           email = :email,
           age = :age,
           location = :location,
           date = :date
         WHERE id = :id";
在这里,您选择了一条id为:id的(全部)记录,在这里,您将id设置为:id设置为已设置的值。Is不会破坏某些东西,但它暗示您的逻辑中存在错误


顺便说一句,您允许每个客户机更改记录。不是SQL注入,但很可能非常糟糕。

我犯了一个新手错误,我试图更新MSSQL中不允许的ID和时间戳列。我将代码更改为此,它运行良好:

   $user =[
     "id"        => $_POST['id'],
     "firstname" => $_POST['firstname'],
     "lastname"  => $_POST['lastname'],
     "email"     => $_POST['email'],
     "age"       => $_POST['age'],
     "location"  => $_POST['location'],
           ];

   $sql = "UPDATE users
           SET firstname = :firstname,
             lastname = :lastname,
             email = :email,
             age = :age,
            location = :location
           WHERE id = :id";

如果使用
id查找记录,则不应更新该id。从
Update Set
语句中删除
id=:id,
,看看这是否有效。是的,记录已经在表中,并通过id进行标识。这只是一个概念证明,我工作后会保护它。可以的话,查询在SSMS中针对表工作得很好。所以不要不理解它为什么以这种方式工作,但不是在你的代码中。
   $user =[
     "id"        => $_POST['id'],
     "firstname" => $_POST['firstname'],
     "lastname"  => $_POST['lastname'],
     "email"     => $_POST['email'],
     "age"       => $_POST['age'],
     "location"  => $_POST['location'],
           ];

   $sql = "UPDATE users
           SET firstname = :firstname,
             lastname = :lastname,
             email = :email,
             age = :age,
            location = :location
           WHERE id = :id";