Inte nära en terminal för att kontrollera, men jag tror att du måste skriva bind den till INT och skicka in den som en INT, inte som "b010101" (eller vad som helst):
$sql='INSERT INTO test(id,data) VALUES(:id,:bit)';
$stmt=db::db()->prepare($sql);
$stmt->bindValue('id', null, PDO::PARAM_NULL);
$stmt->bindValue('bit', (int)$value, PDO::PARAM_INT);
$stmt->execute();
Snabbkoll på Google tog upp detta liknande tidigare svar .