如何获取二进制形式的BIT(…)数据类型列的值? [英] How to get the value of BIT(…) data type columns in binary form?
本文介绍了如何获取二进制形式的BIT(…)数据类型列的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的表:
// numbers
+---------+------------+
| id | numb |
+---------+------------+
| int(11) | bit(10) |
+---------+------------+
| 1 | 0000000001 |
| 2 | 0000000101 |
| 3 | 0000000000 |
| 4 | 0000001011 |
+---------+------------+
当我获取numb
列时,结果将如下所示:
When I fetch numb
column, the result will be like this:
// Query
mysql> SELECT numb FROM numbers WHERE id = 2
// Fetching by PHP (pdo)
$result = $stm->fetch();
$numb = $result['numb'];
echo $numb;
//=> 5
如您所见,最终结果是5
.虽然我想以字符串的形式获取确切的值,但是像0000000101
这样.我该怎么办?
As you see, the final result is 5
. While I want to get that exact value as a string, like this 0000000101
. How can I do that?
推荐答案
您可以使用 decbin ()函数和 sprintf 来添加前置零
You can use decbin() function and sprintf for pre-pending zeros
<?php
$numb = 5;
echo sprintf("%010d",decbin($numb));
输出:
0000000101
从您的评论中:
12 - 0000001100
26 - 0000011010
更新1:
您可以像这样分配给$numb
变量:
You can assign to $numb
variable like this:
$numb = sprintf("%010d",decbin($result['numb']));
这篇关于如何获取二进制形式的BIT(…)数据类型列的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文