Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

php lendo campo de bits do mysql retornando caractere estranho


O MySQL está literalmente retornando 0x00 e 0x01 para os campos de bits. Você terá que convertê-los em algo apropriado no lado do PHP
$bitvalue = ($bitvalue == 0x01) ? 'TRUE' : 'FALSE'

ou na consulta:
SELECT CAST(bitfield AS unsigned int)
FROM ...

que irá convertê-lo em um inteiro e retornar como '0' e '1' (0x48 e 0x49).

Apenas como um aparte, algumas das bibliotecas mysql mais antigas são anteriores ao suporte para campos de bits reais no MySQL (quando eles foram convertidos silenciosamente para char(1)) e destruirão os valores, então se você estiver preso a um desses dinossauros versões, você pode ter que usar a versão de consulta em vez da conversão do lado do PHP.