2010-02-10 4 views
2

페이스 북 연결 통합을하고 있습니다. 나는 페이스 북의 PHP 라이브러리를 사용하여 uid를 얻는다.facebook connect uid mysql storage problem

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

$의 fbuser는, 그러나 같은 1000002949493949

, 내가 MySQL의에이 값을 삽입 할 때 내가 저장된 하나 UID와 일치 할 때 그것은 단지 그래서 나중에 2949493949

을 삽입하는 16 자 길이 BIGINT입니다 내 데이터베이스에서 1000002949493949 데이터베이스가 반환되기 때문에 일치하지 않습니다. 2949493949

내 데이터베이스의 uid 필드는 길이가 20 인 bigint입니다. 원래는 int 였지만 새 테이블을 발견했을 때 변경되었습니다 , 더 긴 uid.

uid를 올바르게 저장하려면 어떻게해야합니까?

답변

4

PHP에서도 64 비트 정수를 사용해야합니다. 정보를 저장하는 코드의 PHP 부분을 게시 할 수 있습니까?

32 비트 버전의 PHP를 사용하는 경우 ID를 문자열이 아닌 정수로 유지하려고하는 것이 좋습니다.

0

가장 쉬운 방법은 varchar로 페이스 북에서 uid 값을 저장하는 것입니다. uid가 uid 값을 얻기 위해 mysql db를 쿼리해야한다면, 이것은 가장 쉬운 방법이다.

+0

(MySQL 용)을 BIGINT로 저장해야합니다 : BIGINT는 8 바이트 VARCHAR는 대이다가 이 경우에는 17 바이트입니다. http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html 여기에있는 문제는 MySQL의 저장소가 아닙니다. 문제는 PHP에서 값이 전달되기 전에 그 값이 전달되는 방식입니다. MySQL에. –

+0

True이지만 BIGINT가 전체적으로 uid를 처리 할 수 ​​있습니까? – aalaap

5

DB를에 fb_uid를 저장할 때, 당신은 BIGINT가 훨씬 작은 스토리지 요구 사항이 VARCHAR를 사용하는 이유가 없습니다