我正在构建一个Web应用程序,并且很难让我的UPDATE查询实际更新数据库中的数据。
这是我的代码:
function changeTeam($id, $newteam){
$dbID = getTeamId($newteam);
$conn = connectdb();
$stmt = $conn->prepare('UPDATE users SET team_id = :team WHERE _id = :id');
$stmt->execute(array('team' => $dbID, 'id' => $id));
}
我已经验证了正确的变量正在传递给函数,并且getTeamId()
函数正常工作。我还采用了语句并使用phpMyAdmin运行它,使用传递给函数的相同值。这也很好。
我已使用$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
启用了pdo错误报告,并且未报告任何错误。
有什么东西我显然不见了吗?
感谢您的帮助。
答案 0 :(得分:0)
看,没有魔法。真。编程没什么神秘之处。要使更新起作用,您必须为查询提供正确的值,并确保它没有错误。这就是全部。没有什么特别的要求。只是正确的语法,数据库中的正确数据,并且在更新期间没有错误。这就是全部。
你可能会说你已经正确设置了所有变量的千倍,但在使它们如此之前,验证是这样,所有更新都将失败。
答案 1 :(得分:-1)
您需要将此$stmt->execute(array('team' => $dbID, 'id' => $id));
更改为$stmt->execute(array(':team' => $dbID, ':id' => $id));
我认为您缺少参数的冒号。
答案 2 :(得分:-1)
试试这个
$stmt = $conn->prepare("UPDATE `users` SET `team_id`=? WHERE _id = ?");
$stmt->execute(array($dbID, $id));