一尘不染

当我将布尔True-False布尔值发送给PDO语句作为绑定到int字段的参数时,会发生什么情况?

sql

我在数据库中有一个int字段,并且:disabled应该为true false,我假设数据库将布尔值设置为整数0和1,但是我不确定。

function loadbyinput($name,$password,$ipnumber="0.0.0.0",$type="member",$disabled=FALSE){    
$dbh = new PDO(...);
$statement=$dbh->prepare("insert into 
 actor(name,password,ipnumber,type,disabled)
 values(:name,:password,:ipnumber,:type,:disabled)");
$statement->bindParam(":disabled", $disabled);
}

我目前不在编写任何GUI,因此很难为我测试这些东西。


阅读 131

收藏
2021-05-23

共1个答案

一尘不染

取决于您的架构。对于数据库中的布尔列,可以使用以下构造(有一个BOOLEAN构造,但这只是TINYINT的别名):

`disabled` tinyint(1) NOT NULL DEFAULT '0'

然后,在绑定时,您可以强制使用bool值:

$stmt->bindValue(':disabled', $disabled, PDO::PARAM_BOOL);
2021-05-23