facebook userid - bigint mysql值

时间:2014-08-15 09:34:18

标签: php mysql facebook-php-sdk biginteger

我们目前正在使用bigint(20)来存储来自facebook的用户ID。 但是我们在使用facebook的新用户标识格式时遇到了一些问题:

Ex: 10152620408662937

这里的问题是mysql(和php)会将上面的数字重写为:

1.0152620408663E+16

你可以想象,我们的数据库-bigint(20) - 正在努力解决这个问题。

有谁知道可以做些什么? 我们是否需要将格式从bigint(20)更改为其他内容,或者在存储之前以其他方式解析id?

谢谢

2 个答案:

答案 0 :(得分:0)

鉴于:

  1. 这些ID实际上没有数字含义
  2. PHP缺乏对大宽度整数的良好支持
  3. 这些值不适用,您在其上执行的操作也不需要,浮点格式的属性
  4. 您应该将它们存储/操作为字符串。

答案 1 :(得分:0)

您可以在PHP中使用GMP库:

$bigint = gmp_init("1.0152620408663E+16");
$bigint_string = gmp_strval(bigint);
var_dump($bigint_string);

//应输出:

 string(19) "10152620408662937"

GMP图书馆:http://php.net/manual/en/book.gmp.php