Tidak dekat terminal untuk diperiksa, tetapi saya yakin Anda harus mengetikkan bind ke INT dan mengirimkannya sebagai INT, bukan sebagai "b010101" (atau apa pun):
$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();
Pemeriksaan cepat di Google memunculkan jawaban serupa sebelumnya .