我正在使用mysql db来保存id。它工作正常。
但现在这样的id为10000000754987.存储为1.0000000754987E + 14。我怎么能解决它。
该字段设置为varchar 255个字符限制。
我感谢任何帮助。
感谢。
答案 0 :(得分:1)
您显然正在使用PHP来生成该ID。
由于您没有提到究竟发生了什么,我只能假设您的数据库设计存在某些原因。
首先,您可以将该号码存储为bigint
而不是varchar
。这是一个你正在保存的整数,我认为你没有理由使用varchar并且本身就浪费了比所需更多的空间。
bigint
使用8个字节来存储数字。这意味着varchar字段中存储的超过8位数的每个数字将比bigint
字段使用更多的空间,该字段可以存储最多2 ^ 64的数字。
其次,在将计算操作的结果发送到db之前,请确保不使用任何数字格式。我复制/粘贴你发布的整数(10000000754987)并且php不会自动将其转换为科学记数法,所以我的猜测是你在后台有其他东西在那个数字生成 - 如果可能的话将其关闭并存储适当字段类型的数字(bigint)。如果您发布有关您的应用及其功能的其他信息,这也很有用,因为错误并不总是人们所处的位置。
答案 1 :(得分:0)
您的问题是数字ID太大而无法让PHP / MySQL处理。
将数据类型更改为VARCHAR(36)
,CakePHP现在将开始使用UUIDs而不是数字ID,您也必须在此表的任何外键上执行此操作。这样可以防止将来发生此问题。
此外,由于它是varchar,它也应该与您当前的ID一起使用..