2011-12-05 7 views
2

私はデータベースにintフィールドを持っています:disabledは真であると仮定されます。false、データベースは整数0と1としてブール値を取得すると仮定していますが、わかりません。intフィールドにバインドされたパラメータとして、真偽値を真偽値としてPDO文に送信するとどうなりますか?

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を書いていないので、そのようなことをテストするのは難しいです。

+1

これをテストするためにGUIは必要ありません。そこにコードがあります。実行して何が起こるかを見てください。 –

+0

@TimGそれは簡単ではありません。クラスの一部であり、テストするために、どこかのインスタンスとコード行を作成する必要があります。 –

答えて

8

は、スキーマに依存します。

:あなたがバインドするときに、あなたはbool値を強制することができ

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

:データベースのbooleanの列のためには、以下の構築物(そこBOOLEAN構築物があるが、それはTINYINTのためだけのエイリアスです)を使用することができます

$stmt->bindValue(':disabled', $disabled, PDO::PARAM_BOOL); 
2

等価物が渡されます:

True = 1 
False = 0 
+7

これはPHP 7では当てはまりません。 1、falseを渡すと、エラーが返されます:不正確な整数値 – Dom

関連する問題