php - true - ¿Cómo puedo agregar un campo booleano a MySQL?
mysql true false (5)
Parece que debería usar tinyint (); ¿Pero no sé cómo implementarlo?
La pregunta es ¿cuál es su recomendación si necesito tener un campo booleano en MySQL DB y modificar su valor con PHP?
Creo que ya que realmente quieres imponer una restricción booleana (0,1) en un campo de tabla mysql, la mejor opción es enumerar
CREATE TABLE table_name(
boolean_field_name ENUM(''0'', ''1'')
);
Prefiero ninguno de bool, BIT, TINYINT (1). Porque ninguno de ellos es realmente booleano. Puede consultar el siguiente enlace para ''por qué'':
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
Mejor uso: ENUM (''false'', ''true'') no null, como tipo de datos. Puede pasar ''verdadero'' o ''falso'' (como cadenas) desde PHP. ¡Y solo tardará 1 byte en almacenarlo!
Tienes opción de tinyint (1) o bit
inserte 0 o 1 en este campo
Vea este post de la diferencia:
Tienes razón en que la solución general es tinyint(1)
. Puedes usar BOOL para abreviar:
CREATE TABLE example (
flag BOOL
);
Sí, TINYINT(1)
es el camino a seguir ... también puede usar BOOL
o BOOLEAN
que son sinónimos (por lo que no hace una diferencia).
0
evalúa como false
en PHP y 1
como true
(en realidad, cualquier otro número que no sea 0
evalúa como true
, pero normalmente se usa 1).