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

Uğu*_*han 5 php mysql sql pdo boolean

我在数据库中有一个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);
}
Run Code Online (Sandbox Code Playgroud)

我目前没有编写任何GUI,所以很难为我测试这些东西.

Mik*_*ell 9

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

`disabled` tinyint(1) NOT NULL DEFAULT '0'
Run Code Online (Sandbox Code Playgroud)

然后绑定时,可以强制执行bool值:

$stmt->bindValue(':disabled', $disabled, PDO::PARAM_BOOL);
Run Code Online (Sandbox Code Playgroud)