2010-02-10 43 views
2

我正在做一个facebook连接集成。我使用facebook的php库来获取uid,如facebook连接uid mysql存储问题

$ facebook = new Facebook($ api_key,$ secret); $ fb_user = $ facebook-> require_login();

$ fbuser是16个字符长BIGINT,例如1000002949493949

然而,当我插入这个值到MySQL它只是插入2949493949

所以后来当我尝试匹配的UID到一个存储在我的数据库1000002949493949不匹配,因为该数据库将返回2949493949

uid字段在我的数据库是一个BIGINT与20长,它原本是一个整数,但我改变了它,当我开始遇到新,更长的uid。

任何想法,我需要做些什么来正确地存储uid?

回答

4

您需要确保在PHP中使用64位整数。你能发布存储信息的代码的PHP部分吗?

如果您使用的是32位版本的PHP,我会建议尝试将id保留为字符串,而不是整数。

0

最简单的方法是将facebook的uid值存储为varchar。如果你只需要查询mysql db来获得uid值,那么这是最简单的方法。

+0

没有理由使用VARCHAR,当BIGINT具有更小的存储需求:BIGINT是8个字节VS VARCHAR是在这种情况下是17字节。 http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html 这里的问题不是MySQL中的存储,问题在于如何在PHP获取值到MySQL。 – 2010-02-10 18:10:07

+0

是的,但BIGINT可以处理整个uid吗? – aalaap 2011-07-22 13:02:03

5

当存储在数据库中的fb_uid,你应该把它作为一个BIGINT(用于MySQL的)