我想查询针对MSSQL数据库上BIGINT主键和一些返回的值调高圆润,比存储在数据库中的有所不同:PDO MSSQL - 错BIGINT返回值
9200000000000359存在于DB以及9200000000000361中。查询这两个值中的任何一个都会返回9200000000000360(注意:该值在数据库中不存在)。
看起来,这些值首先(错误地)转换为二进制,并在转换回来时导致与原始值不同的值。但我在64位机器上使用PHP 5.6,而不是32位。当使用dblib和odbc驱动程序时也会发生这种情况。
有什么设置可以在SQLServer或php.ini配置中获得正确的值吗?
奇怪的是,什么是'串(16)'? – 2016-09-29 07:46:29
如果你在你的16位整数周围加上单引号“'”,会发生什么? – Abela
@Abela我不认为它可能会改变一件事情,因为两者都是字符串。编辑:顺便说一句,是一个输出字符串,你不能改变引号。 – 2016-09-29 07:47:30