php - 当我直接输入数字时 decbin 有效,但当我从数据库中提取它时则无效

标签 php mysql binary decimal

我使用以十进制存储数据的数据库。我将其转换为二进制,这样我就可以将其读取为打开和关闭。直到十进制长度超过 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/

相关文章:

javascript - td 为空时如何使 colspan 自动?

phpMyAdmin - 错误格式参数不正确

mysql - 在 mysql 导出中将 blob 转换为文本

python - 如何将二进制 dat 文件 (.dat) 保存为 png 或 jpg 格式?

node.js - 在 NodeJS/Express 服务器上运行具有共享对象依赖项的二进制文件

c++ - 快速将 uint32_t 转换为二进制

php - 如何获取要下载的文件的 MIME 类型?

php - 如何在 PHP/Magento 中捕获这个低级别的 MySQL(?)错误

mysql - perl 在脚本中打包 dbd mysql 模块

php - 回显列中的所有行