準備済みクエリにbool値を渡す
バグなのか仕様なのか、、PDOを使った準備済みクエリに真偽値の設定には注意が必要です。数値で指定してやらないと上手く値が反映されません。
$pdo = // 省略
$sth = $pdo->prepare("UPDATE foo SET visible = ?");
$sth->execute(array(1)); // TRUE
$sth->execute(array(0)); // FALSE
// 以下は動作せず
// $sth->execute(array(TRUE));
// $sth->execute(array(FALSE));
// $sth->execute(array(“TRUE”));
// $sth->execute(array(“FALSE”));
mysqlのboolean型はtinyintのエイリアスだと分かっていればピンとくるのですが、そうでないとハマってしまうこと請け合いです。特に「PDO::PARAM_BOOL」なんて定数もあるので、BOOL型が直接使えそうだと思ってしまいます(多分、使えるべきなんでしょうけれど)。
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について