How can I add a Boolean field to MySQL?
Yep, TINYINT(1)
is the way to go... you can also use BOOL
or BOOLEAN
which are synonyms (so it does not make a difference).
0
evaluates to false
in PHP and 1
to true
(actually, any other number than 0
evaluates to true
, but 1
is normally used).
I prefer none of bool, BIT, TINYINT(1). because none of them are actually boolean. You can check the following link for 'why':
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
I would better use : ENUM ('false', 'true') not null - as datatype. You can pass 'true' or 'false' (as strings) from PHP. And it will take only 1 byte to store it!