当我直接输入数字时,decbin起作用,但是当我从数据库中提取数字时,decbin起作用

时间:2019-02-24 04:03:47

标签: php mysql binary decimal

我使用一个以十进制存储数据的数据库。我将其转换为二进制文件,因此可以随时将其读取。在十进制长度超过6个字符之前,我没有任何问题。

以下作品:

$value = 2147614720;
$value = decbin($value);

输出:10000000000000100000000000000000

但是,如果我尝试从数据库中提取该值,则超过6个字符时将不起作用。

$value = $row['decimalvalue'];
$value = decbin($value);

输出:1111111111111111111111111111111

任何帮助都会很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

直到最近,PHP才仅使用32位整数构建。这可以解释第二个失败的原因。但是令人困惑的是第一个示例为何起作用。

2147614720> 2 ^ 31-1,因此变成2 ^ 31-1 = 2147483647。

升级您的PHP。