如何获取二进制形式的BIT'数据类型列的值?

问题描述

您可以使用decbin()函数sprintf预先添加

<?PHP

$numb = 5;
echo sprintf("%010d",decbin($numb));

输出

0000000101

根据您的评论

12 - 0000001100
26 - 0000011010

您可以这样分配$numb变量:

$numb = sprintf("%010d",decbin($result['numb']));

解决方法

我有一个这样的表:

// numbers
+---------+------------+
|    id   |    numb    |
+---------+------------+
| int(11) |   bit(10)  |
+---------+------------+
| 1       | 0000000001 |
| 2       | 0000000101 |
| 3       | 0000000000 |
| 4       | 0000001011 |
+---------+------------+

当我获取numb列时,结果将是这样的:

// Query
mysql> SELECT numb FROM numbers WHERE id = 2

// Fetching by PHP (pdo)
$result = $stm->fetch();
$numb   = $result['numb'];
echo $numb;
//=> 5

如您所见,最终结果是5。虽然我想以字符串的形式获取确切的值,但是像这样0000000101。我怎样才能做到这一点?