我使用以十进制存储数据的数据库。我将其转换为二进制,这样我就可以将其读取为打开和关闭。直到十进制长度超过 6 个字符之前我没有遇到任何问题。
以下作品:
$value = 2147614720;
$value = decbin($value);
输出:10000000000000100000000000000000
但是,如果我尝试从数据库中提取该值,如果超过 6 个字符,则该值将不起作用。
$value = $row['decimalvalue'];
$value = decbin($value);
输出:1111111111111111111111111111111
任何帮助都会很棒。谢谢。
最佳答案
直到最近,PHP 仍仅使用 32 位整数构建。这可以解释为什么第二个失败。但令人费解的是为什么第一个例子有效。
2147614720 > 2^31-1,所以变成了2^31-1 = 2147483647。
升级您的 PHP。
关于php - 当我直接输入数字时 decbin 有效,但当我从数据库中提取它时则无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848625/