我有一些表在我的数据库与类型BIGINT列: 设定值在PHP低于0让0
的问题是,当我设置(通过更新或插入)值比0(对示例-2),然后在数据库中设置为0.
有人知道为什么吗?
(我没有任何程序在插入/更新之前更改此值)。 Db是MySql
我有一些表在我的数据库与类型BIGINT列: 设定值在PHP低于0让0
的问题是,当我设置(通过更新或插入)值比0(对示例-2),然后在数据库中设置为0.
有人知道为什么吗?
(我没有任何程序在插入/更新之前更改此值)。 Db是MySql
它看起来像你的数据库实际上使用的是一BIGINT UNSIGNED
,其具有范围为0至18446744073709551615.而按照MySQL Reference Manual:
当外的范围内的值被分配吨o整数列,MySQL存储表示列数据类型范围的相应端点的值。
这意味着试图存储在任何UNSIGNED
列中的负数将返回到0。
为了解决这个问题,最好明确设置数据类型为BIGINT SIGNED
。
您可以阅读unsigned bigint和signed bigint之间的区别。 MySQL Bigint
无符号BIGINT值:0到18446744073709551615
而符号的BIGINT值:-9223372036854775808到9223372036854775807
所以,你必须使用符号的BIGINT
太棒了!非常感谢。 – DarSta
你正在使用一个unsigned int,它不允许使用负数。您可以在这里阅读:https://msdn.microsoft.com/en-us/library/ms187745.aspx关于SQL中的bigint –
的确如此。谢谢! – DarSta