我将以下代码作为我的实体:
/**
*
* @Entity
* @Table(name="group")
*
**/
Class Group {
/**
*
* @Column(type="string", nullable=true)
**/
private $phone;
(etc...)
__get( $var ) {
return $this->$var;
}
__set( $var, $val ){
$this->$var = $val;
}
然后我尝试用大于9位的数字修改它。例如,
$group->phone = 5147811326;
$ phone设置为2147483647
。 1111111111
(它被转移到2147483647
)
如果我尝试514781
,它会保持数字正常。但超过9位数只是转换。我最初将mysql列作为整数但将其转换为字符串......仍然是一个问题。
发生了什么事???? !! !!
答案 0 :(得分:2)
数字“5147811326”不能存储在32位整数中,因为根本没有足够的位。 32位整数的最高二进制值是“11111111 11111111 11111111 11111111”(或十进制系统中的2147483647)。尝试使用64位整数或字符串来存储电话号码。
答案 1 :(得分:1)
这意味着您使用的数据类型是32位。 2147483647等于2 31 - 1。