sql >> Databasteknik >  >> RDS >> Mysql

php läser mysql bitfältet returnerar konstig karaktär

MySQL returnerar bokstavligen 0x00 och 0x01 för bitfälten. Du måste konvertera dem till något lämpligt på antingen PHP-sidan

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

eller i frågan:

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

vilket konverterar den till en int och returnerar som '0' och '1' (0x48 och 0x49).

Bara som ett stycke, några av de äldre mysql-biblioteken har stöd för riktiga bitfält i MySQL (när de tyst konverterades till char(1)) och kommer att slänga värdena, så om du har fastnat med en av dessa dinosaurier versioner kan du behöva använda frågeversionen snarare än konverteringen på PHP-sidan.



  1. Ta bort standardspåret – Del 3

  2. Exportera en MySQL-databas till SQLite-databas

  3. Välj en del från ett MySQL Blob-fält

  4. Hur man beräknar skillnaden mellan två datum i T-SQL