2010-02-10 85 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的)