小编典典

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

sql

我有一个这样的表:

// 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。我怎样才能做到这一点?


阅读 161

收藏
2021-05-30

共1个答案

小编典典

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

<?php

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

输出:

0000000101

根据您的评论:

12 - 0000001100
26 - 0000011010

更新1:

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

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