微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有这样一张桌子:

// 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.我怎么能这样做?

解决方法:

您可以将decbin()功能sprintf用于预先挂起的零

<?PHP

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

输出

0000000101

从你的评论

12 - 0000001100
26 - 0000011010

UPDATE1:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐