3 回答
![?](http://img1.sycdn.imooc.com/54586453000163bd02200220-100-100.jpg)
TA贡献1852条经验 获得超7个赞
我犯了一个菜鸟错误,我试图在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";
![?](http://img1.sycdn.imooc.com/545866c40001561502200220-100-100.jpg)
TA贡献1883条经验 获得超3个赞
您是否直接在MSSQL Management Studio中尝试了该查询?
之后,您会看到它工作正常,请尝试“回显” POST变量以查看是否正确获取了它们。
![?](http://img1.sycdn.imooc.com/5333a0490001f9ff02200220-100-100.jpg)
TA贡献1946条经验 获得超3个赞
我没看到INSERT。相反,您仅使用UPDATE意味着仅修改现有记录。这是你想要的吗?
$sql = "UPDATE users
SET id = :id,
firstname = :firstname,
lastname = :lastname,
email = :email,
age = :age,
location = :location,
date = :date
WHERE id = :id";
在这里,您通过选择一个(所有)记录id = :id,并在此处SET id = :id将其设置id为一个已设置的值。Is不会破坏某些内容,但这暗示您逻辑中的某些内容是错误的。
顺便说一句,您允许每个客户更改记录。不是SQL注入,但很可能非常糟糕。
- 3 回答
- 0 关注
- 132 浏览
添加回答
举报