sql >> Base de Datos >  >> RDS >> Mysql

php leyendo el campo de bits mysql devolviendo un carácter extraño

MySQL está devolviendo literalmente 0x00 y 0x01 para los campos de bits. Tendrás que convertirlos en algo apropiado ya sea del lado de PHP

$bitvalue = ($bitvalue == 0x01) ? 'TRUE' : 'FALSE'

o en la consulta:

SELECT CAST(bitfield AS unsigned int)
FROM ...

que lo convertirá en un int y regresará como '0' y '1' (0x48 y 0x49).

Como comentario aparte, algunas de las bibliotecas mysql más antiguas son anteriores a la compatibilidad con campos de bits reales en MySQL (cuando se convirtieron silenciosamente a char (1)) y desecharán los valores, por lo que si está atrapado con uno de esos dinosaurios versiones, es posible que deba usar la versión de consulta en lugar de la conversión del lado de PHP.