我有一个sqlite表 - 地址如下:
<select onchange="myFunction(this.value)">
但是,当我尝试在数量非常大的appid中保存数据时,我会得到类似+-----------------------------+
| appid | BIGINT (20) |
| address | CHAR(300) |
| addr_id | BIGINT(11) |
+-----------------------------+
的内容。我尝试使用9.0916073007e+18
,但这也无效。
我该如何解决这个问题?
编辑:
real
答案 0 :(得分:1)
SQLite支持带符号的64位整数,即最大值为9223372036854775807:
sqlite> create table t(x); sqlite> insert into t values(9223372036854775807); sqlite> select * from t; 9223372036854775807
然而,PHP documentation说:
整数的大小取决于平台,尽管最大值约为20亿是通常的值(32位签名)。 64位平台的最大值通常约为9E18,除了PHP之前的Windows,它总是32位。
[...]
如果PHP遇到超出整数类型边界的数字,它将被解释为浮点数。
所以你必须升级到最近的64位版本的PHP。或者将值作为字符串处理。