我遇到了问题,因为我的数据库有BIGINT数据(64位整数),但我运行的PHP版本只有32位.
因此,当我从表中提取值时,我最终得到一个表示基数为10的64位整数的数字字符串.我理想的做法是使用64位整数作为位掩码.所以我需要去两个32位整数(一个代表上半部分,一个代表下半部分)或基数2中的数字字符串.
问题是我不能仅仅将它倍增,因为我的PHP只有32位.我被困了?
解决方法:
您可以使用MySQL的bit shift operators将64位整数拆分为两个32位整数.所以,你可以选择:
select (myBigIntField & 0xffffffff) as lowerHalf,
(myBigIntField >> 32) as upperHalf