【发布时间】:2013-05-04 12:58:35
【问题描述】:
我有两个带有 bigint 的表:
table1
id bigint(20) PK autoincrement
name varchar(40),
text
table2
id bigint(20) PK autoincrement
created datetime
text_field
id_table1_ref bigint(20)
将数据插入table1并尝试将table1.id插入table2.id_table1_ref后, 数字不同,即:
table1.t1 中的数字 1552545662588 变为 1552545662,甚至更糟的是一个负数。
我知道这是设置问题,但我不知道如何管理。 我尝试为字段设置有符号/无符号值,但它不起作用。
这发生在我的 UNIX 本地计算机上,在服务器上一切正常,至少目前是这样。
任何帮助将不胜感激。
【问题讨论】:
-
这可能是您所说的 MySQL 问题,但还要确保 PHP 代码中没有任何内容导致数字转换为 PHP 整数。 MySQL bigint 比 PHP int 可以处理的大,因此请确保始终将其作为字符串保存在 PHP 中。
-
你确定其中一个不是 bigint unsigned 而另一个不是已签名?这会导致您描述的问题。
-
@Alasdair 是的,我确定 ...
-
@MattBrowne 感谢马特,我采取了错误的方法,我应该将它们视为字符串。