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

长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?

如何解决长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?

http://dev.mysql.com/doc/refman/5.0/en/integer- types.html

整数溢出会将数据库中的最大允许数设置为

2147483647
@H_502_7@

所以你需要bigint 数据类型来存储更大的整数

解决方法

我有一个integer长度为10 的类型的列:

`some_number` int(10) unsigned NOT NULL

在此列中,我插入了一个太长的数字:

$some_number = 715988985123857;
$query = "INSERT INTO this_table SET some_number = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$some_number);
$stmt->execute();

当我查看表格中的内容时,数字现在是:

2147483647

715988985123857变成了为什么,为什么2147483647
为什么没有被截断?
这种转换背后的机制是什么,可以使用某些公式来计算结果数吗?


我不是在寻找解决方案。我只想了解具体数字。

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