Cita: En primer lugar he usado el tipo BIT ya que a partir de la versión 5.0.3 de mysql esta disponible y uso la 5.5.24.
Pero cuando asigno un valor me dice que fuera de rango, ni 0 ni 1.
Esto que dices no tiene mucho sentido. No deberías tener problemas al ingresar un 0/1, ya que eso es lo que espera ese tipo de dato.
Posteanos la query tal como la usas para insertar, para ver lo que está sucediendo.
Cita: Por otro lado, intento usar el tipo tinyint que es como se hacia antes que existiera el tipo BIT y claro, esto me serviría pero me almacenaría del 0 al 255 poniéndolo unsigned, pero independiente del tamaño que le ponga, es decir, si pongo un tintyint(1) me almacena también hasta el valor 255.
Tengo la impresión de que tu problema tiene que ver con el "rango" que los manuales indican al crear una columna, y en ese sentido lo que tienes es un error involuntario.
El (1) no indica que esa columna vaya a tener un único dígito. Ese valor no restringe el rango de representación del TINYINT (ni de ningún número
entero). Se usa para otra cosa.
¿Podrías postear el CREATE TABLE de tu tabla?