It seems I should use tinyint(); but I don't know how to implement it?
The question is what is your recommendation if I need to have a boolean field in MySQL DB and modify it´s value with PHP
It seems I should use tinyint(); but I don't know how to implement it?
The question is what is your recommendation if I need to have a boolean field in MySQL DB and modify it´s value with PHP
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!
You're correct that the general solution is tinyint(1)
. You can use BOOL for short:
CREATE TABLE example (
flag BOOL
);
you have option of tinyint(1) or bit
insert 0 or 1 to this field
see this post of the difference :
I think since you actually want to enforce a boolean (0,1) constraint on a mysql table field, the best shot is uning enum
CREATE TABLE table_name(
boolean_field_name ENUM('0', '1')
);