php liest ein mysql-Bit-Feld, das seltsame Zeichen zurückgibt

8

Ich verwende mysql_fetch_assoc($query) , eines der Bitfelder, die ausgegeben werden sollen, was angeblich wahr ist.
Das Problem ist, dass ich dies auch in xml ausgeben muss und es ist ein unzulässiges XML-Zeichen. Der Zeichensatz für die db-Tabelle ist utf-8. Warum passiert das?

    
user121196 26.05.2010, 16:10
quelle

3 Antworten

4

Verwenden Sie die BIN-Funktion in Ihrem SELECT.

Ссылка

    
webbiedave 26.05.2010, 16:25
quelle
14

MySQL gibt im wahrsten Sinne des Wortes 0x00 und 0x01 für die Bitfelder zurück. Sie müssen sie in eine geeignete PHP-Seite

konvertieren %Vor%

oder in der Abfrage:

%Vor%

was es in ein int konvertiert und als '0' und '1' (0x48 und 0x49) zurückgibt.

Nebenbei bemerkt, einige der älteren mysql-Bibliotheken haben vor der Unterstützung für echte Bitfelder in MySQL (wenn sie stillschweigend in char (1) konvertiert wurden) und werden die Werte in den Mülleimer werfen, wenn Sie mit einem stecken bleiben Von diesen Dinosaurierversionen müssen Sie möglicherweise die Abfrageversion anstelle der PHP-seitigen Konvertierung verwenden.

    
Marc B 26.05.2010 21:23
quelle
6

Sie können auch verwenden: ord($bitvalue) .

    
atmozer 21.10.2012 11:00
quelle

Tags und Links