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对象是否设置为引发异常?