PHP PDO UPDATE无效

时间:2015-10-09 18:48:25

标签: php mysql pdo

我正在构建一个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错误报告,并且未报告任何错误。

有什么东西我显然不见了吗?

感谢您的帮助。

3 个答案:

答案 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));