Mysql
 sql >> Database >  >> RDS >> Mysql

php che legge il campo di bit di MySQL che restituisce un carattere strano

MySQL sta letteralmente restituendo 0x00 e 0x01 per i campi di bit. Dovrai convertirli in qualcosa di appropriato su entrambi i lati PHP

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

o nella query:

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

che lo convertirà in un int e restituirà come '0' e '1' (0x48 e 0x49).

Per inciso, alcune delle vecchie librerie MySQL sono antecedenti al supporto per i campi di bit reali in MySQL (quando sono stati convertiti silenziosamente in char(1)) e cestinano i valori, quindi se sei bloccato con uno di quei dinosauri versioni, potrebbe essere necessario utilizzare la versione della query anziché la conversione lato PHP.