以下是我的代码:
$updateAct = $db->prepare("UPDATE alarm SET active=:act WHERE user_id = :uid AND id = :aid");
$updateAct->bindValue("aid", $_POST['id'], PDO::PARAM_STR);
$updateAct->bindValue("act", $_POST['active'], PDO::PARAM_BOOL);
$updateAct->bindValue("uid", $_SESSION['login'], PDO::PARAM_INT);
$updateAct->execute();
error_log($_POST['active']);使用上面的代码,我可以将字段active = :act仅设置为false。我不知道为什么,但是当我后来用MySQL工作台检查这个值时,它总是0。
但是,当我将第3行更改为:
$updateAct->bindValue("act", $_POST['active'] ? 999 : 0, PDO::PARAM_INT);那么我只能将它设置为127。这让我更加困惑。
这是怎么回事?
发布于 2018-02-14 04:35:20
,那么我只能将它设置为127。这让我更加困惑。
在MySQL中,布尔值通常使用TINYINT数据类型定义,最大值为127。
https://stackoverflow.com/questions/48775125
复制相似问题