Mysql
 sql >> Base de données >  >> RDS >> Mysql

php lisant un champ de bits mysql renvoyant un caractère étrange

MySQL renvoie littéralement 0x00 et 0x01 pour les champs de bits. Vous devrez les convertir en quelque chose d'approprié côté PHP

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

ou dans la requête :

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

qui le convertira en un entier et retournera comme '0' et '1' (0x48 et 0x49).

Soit dit en passant, certaines des anciennes bibliothèques mysql sont antérieures à la prise en charge des vrais champs de bits dans MySQL (lorsqu'ils ont été convertis silencieusement en char(1)) et supprimeront les valeurs, donc si vous êtes coincé avec l'un de ces dinosaures versions, vous devrez peut-être utiliser la version de requête plutôt que la conversion côté PHP.