如何获取二进制形式的BIT(…)数据类型列的值? [英] How to get the value of BIT(…) data type columns in binary form?

查看:120
本文介绍了如何获取二进制形式的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆