Php PDO查询未更新

Php PDO查询未更新,php,mysql,pdo,Php,Mysql,Pdo,我已经正确设置了我的查询,它返回时没有任何错误,但由于某些原因没有更新 $database->updateAdmin(1, $_POST['user']); public function updateAdmin($status, $uid) { $sql = 'UPDATE users SET admin = :status WHERE uid = :uid'; $result = $this->pdo->prepare($sql); $resul

我已经正确设置了我的查询,它返回时没有任何错误,但由于某些原因没有更新

$database->updateAdmin(1, $_POST['user']);

 public function updateAdmin($status, $uid) {
    $sql = 'UPDATE users SET admin = :status WHERE uid = :uid';
    $result = $this->pdo->prepare($sql);
    $result->execute([
        ':status' => $status,
        ':uid' => $uid
    ]);
}

<select name="user">
      <option value="1">John</option>
     <option value="2">Sarah</option>
 </select>
$database->updateAdmin(1,$\u POST['user']);
公共函数updateAdmin($status,$uid){
$sql='UPDATE users SET admin=:status,其中uid=:uid';
$result=$this->pdo->prepare($sql);
$result->execute([
“:状态”=>$status,
':uid'=>$uid
]);
}
约翰
莎拉
管理字段是枚举('0','1'))


这就是所有设置的方式它只是说它正常,但从未更新,有人能发现可能的原因吗?

要使它出现错误,你必须询问它们。
您是否已将PDO设置为异常模式

然而,可能有一个很难发现的把戏。
必须将1绑定为字符串,而不是数字。否则它将不会更新。

我不太熟悉数组的自动绑定,但PDO很可能会发挥一些魔力,将1绑定为一个数字。因此,可以肯定的是,我会手动绑定它。

需要什么魔法?在
$database->updateAdmin(1,$\u POST['user'])中它已经是一个不正确的数字。您可以绑定整数和字符串。传入的所有参数都被视为
PDO::PARAM_STR
。如果需要非字符串绑定,则需要显式绑定。是否检查错误?PDO对象是否设置为引发异常?