我正在使用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. 返回奇怪字符的PHP卷曲
- 2. php excel阅读返回奇怪的字符
- 3. Java Socket Read在第二次读取时返回奇怪字符
- 4. 奇怪的回声字符串从MySQL
- 5. json_encode返回一些奇怪的字符
- 6. iOS NSMutableString返回奇怪的字符
- 7. MYSQLi奇怪的字符返回null
- 8. strtotime返回奇怪的字符
- 9. Java BufferedReader返回奇怪的字符
- 10. PHP MySQL更新和奇怪的字符?
- 11. iOS奇怪地读取一些字符?
- 12. 更新两个字段对的值返回奇怪的字段
- 13. MySQL中奇怪的字符
- 14. PHP Json_Encode奇怪的字符?
- 15. PHP中的奇怪字符
- 16. cURL PHP奇怪的字符
- 17. AudioRecord读取返回奇怪的值
- 18. 从mysql表读取数据时出现奇怪的字符
- 19. utf-8字符集,7位编码,PHP添加奇怪字符
- 20. 奇怪的hibernate createSQLQuery返回CHAR |字符但字符串
- 21. php mysql位字段
- 22. 抓取远程XML文件返回奇怪的字符串
- 23. 通过iText提取PDF文本返回奇怪字符
- 24. PHP的某些字符返回奇HTML
- 25. 在PHP中以字符串形式返回的MySQL小数位字段
- 26. MySQL的整数字段返回字符串中PHP
- 27. 访问MySQL奇怪的价格字段
- 28. 串口读取PHP奇怪
- 29. 从json C++输出获取字段中的奇怪字符
- 30. 德尔福棱镜:从二进制文件读取字符串返回与奇怪的字符
你也可以通过'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