Sto usando mysql_fetch_assoc($query)
, uno dei bit field restituiti, che è presumibilmente vero.
Il problema è che ho anche bisogno di trasmettere questo a xml ed è un carattere xml illegale. il set di caratteri per la tabella db è utf-8. perché succede?php reading mysql bit field return carattere strano
risposta
Utilizzare la funzione BIN nella SELECT.
http://dev.mysql.com/doc/refman/5.0/en/bit-field-literals.html
MySQL è letteralmente tornando 0x00 e 0x01 per i campi di bit. Dovrete convertirli in qualcosa di appropriato sia PHP-side
$bitvalue = ($bitvalue == 0x01) ? 'TRUE' : 'FALSE'
o nella query:
SELECT CAST(bitfield AS unsigned int)
FROM ...
che verrà convertito in un int e ritorno, '0' e '1' (0x48 e 0x49).
Proprio come una parte, alcune delle vecchie librerie mysql pre-data il supporto per i campi bit reali in MySQL (quando sono state silenziosamente convertite in char (1)) e cancellano i valori, quindi se sei bloccato una di quelle versioni di dinosauri, potrebbe essere necessario utilizzare la versione della query piuttosto che la conversione sul lato PHP.
È inoltre possibile utilizzare: ord($bitvalue)
.
Grazie per il tuo contributo, ma penso che questo dovrebbe essere un commento alla risposta di Marc B - questa risposta non è la sola. – Day
Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai sufficiente [reputazione] (http://stackoverflow.com/faq#reputation) sarai in grado [commentare qualsiasi post] (http://stackoverflow.com/privileges/comment). – Day
@Day mi sembra una risposta abbastanza buona. – Mike
- 1. Bit field vs Bitset
- 2. Carattere del trattino strano in PHP
- 3. Spiegare il comportamento dei bit-field 1-bit
- 4. Strano espressione nella istruzione return
- 5. PHP Mail, CC Field
- 6. store return json value in input hidden field
- 7. PHP - Break after return?
- 8. Funzione PHP 'return' non restituisce
- 9. MySQL drop field; chiave esterna errorno 150
- 10. MySQL sinistra dove table2.field = "X"
- 11. Seleziona dalla tabella mysql WHERE field = '$ array'?
- 12. Put Array json su mysql return Array
- 13. MySQL mostrando strano risultato
- 14. MySQL MAX (id) chiamato da PHP produce un valore strano
- 15. PHP Yield, strano comportamento
- 16. Un errore in attuazione GCC di bit-field
- 17. Conversione di endianess su una struttura di bit field
- 18. Reading YAML in python
- 19. Quanti bit in un carattere?
- 20. sintassi PHP Strano
- 21. Errore strano POST/PHP
- 22. operazioni Mysql bit per bit e filtrare
- 23. Strano sovraccarico operatore, "operatore T &() const noexcept {return * _ptr;}"
- 24. iphone app reading sms
- 25. Reading ELF in C
- 26. Reading InputStream to Arraylist
- 27. Socket reading and timestamps
- 28. Reading uscita git diff
- 29. Inserire un ♥ in MySQL (carattere cuore) tramite PHP
- 30. MySQL - Cerca script PHP
È anche possibile eseguire 'SELEZIONA bitfield + 0' per eseguire il cast su int. C'è qualche differenza nel farlo in questo modo o usare 'CAST()'? – Mike
Per essere sicuri di binari si può anche usare '$ bitvalue = ($ bitvalue === chr (0x01))' che assegnerà 'true' o 'false' a' $ bitvalue'. –
@StanimirStoyanov il tuo ha funzionato per me –