sql >> Database >  >> RDS >> Mysql

php lezen mysql bit veld geeft raar karakter terug

MySQL retourneert letterlijk 0x00 en 0x01 voor de bitvelden. Je zult ze moeten converteren naar iets geschikts aan de PHP-kant

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

of in de zoekopdracht:

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

die het zal converteren naar een int en terugkeert als '0' en '1' (0x48 en 0x49).

Even terzijde, sommige van de oudere mysql-bibliotheken dateren van vóór de ondersteuning voor echte bitvelden in MySQL (toen ze stil werden geconverteerd naar char(1)) en zullen de waarden weggooien, dus als je vastzit aan een van die dinosaurus versies, moet u mogelijk de queryversie gebruiken in plaats van de PHP-side conversie.



  1. PHP float/double opgeslagen als MySQL DECIMAL

  2. MYSQL telling van telling?

  3. Geen gegevens meer om uit socket te lezen

  4. Recursieve CTE schrijven met behulp van Entity Framework Fluent-syntaxis of Inline-syntaxis