我正在使用mysql_fetch_assoc($query)
,其中一個位字段返回爲假,這應該是真實的。
問題是,我也需要輸出到XML,它是一個非法的XML字符。 db表的字符集是utf-8。爲什麼會發生?php讀取mysql位字段返回奇怪字符
回答
在您的SELECT中使用BIN功能。
http://dev.mysql.com/doc/refman/5.0/en/bit-field-literals.html
MySQL是字面上的位字段返回爲0x00和0x01。你必須把它們轉換成合適的東西或者PHP端
$bitvalue = ($bitvalue == 0x01) ? 'TRUE' : 'FALSE'
或查詢:
SELECT CAST(bitfield AS unsigned int)
FROM ...
,將其轉換爲int和返回爲「0」和「1」 (0x48和0x49)。就像旁白一樣,一些較老的mysql庫在MySQL中實時位域的支持(當它們被默認轉換爲char(1)時),並且會丟棄這些值,所以如果你被卡住了這些恐龍版本之一,你可能不得不使用查詢版本,而不是PHP端轉換。
您還可以使用:ord($bitvalue)
。
感謝您的貢獻,但我認爲這應該是對馬克B的回答的評論 - 這個答案並不孤單。 – Day 2012-10-21 11:21:57
這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你可以隨時評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/faq#reputation),你將能夠[評論任何帖子](http://stackoverflow.com/privileges/comment)。 – Day 2012-10-21 11:22:21
@Day對我來說這似乎是一個足夠好的答案。 – Mike 2013-12-10 21:18:33
- 1. Java Socket Read在第二次讀取時返回奇怪字符
- 2. Java BufferedReader返回奇怪的字符
- 3. iOS NSMutableString返回奇怪的字符
- 4. PHP MySQL更新和奇怪的字符?
- 5. PHP Json_Encode奇怪的字符?
- 6. PHP中的奇怪字符
- 7. 從mysql表讀取數據時出現奇怪的字符
- 8. utf-8字符集,7位編碼,PHP添加奇怪字符
- 9. 奇怪的hibernate createSQLQuery返回CHAR |字符但字符串
- 10. php mysql位字段
- 11. 通過iText提取PDF文本返回奇怪字符
- 12. MySQL的整數字段返回字符串中PHP
- 13. 訪問MySQL奇怪的價格字段
- 14. 從json C++輸出獲取字段中的奇怪字符
- 15. 德爾福棱鏡:從二進制文件讀取字符串返回與奇怪的字符
- 16. NSNumber numberWithInt:返回奇怪的數字?
- 17. 奇怪的字符
- 18. 奇怪的字符
- 19. 奇怪的字符
- 20. MySQL編碼奇怪的字符
- 21. mysql中的奇怪字符dbase
- 22. MySQL的奇怪的字符iphone和Safari
- 23. NHibernate的:讀取MySQL的Blob字段 - 值返回爲 「System.Byte []」
- 24. MySQL JOIN返回NULL字段
- 25. mySQL返回不空字段
- 26. OkHttp返回無法讀取的字符
- 27. 讀取整數和返回字符串
- 28. 使用FPDF PHP時奇怪的字符?
- 29. php jquery和奇怪的字符
- 30. PHP中的奇怪字符串
你也可以通過'SELECT bitfield + 0'來強制轉換爲int。這樣做還是使用'CAST()'有什麼區別? – Mike 2013-12-10 22:12:08
爲了保證二進制安全,還可以使用'$ bitvalue =($ bitvalue === chr(0x01))',它可以將'true'或'false'賦值給'$ bitvalue'。 – 2015-07-05 15:00:01
@StanimirStoyanov你爲我工作過 – 2015-10-15 23:59:05