17个字符的Facebook用户id使用Facebook php SDK v2.10以不同的值存储在MYSQL中

17个字符的Facebook用户id使用Facebook php SDK v2.10以不同的值存储在MYSQL中,php,mysql,facebook,facebook-graph-api,Php,Mysql,Facebook,Facebook Graph Api,我在Facebook开发者文档中读到: 身份证 数字字符串 此人的用户帐户的id。此ID对于每个应用程序都是唯一的,不能跨不同的应用程序使用。我们的升级指南提供了有关特定于应用程序的ID的更多信息 核心 当我的用户返回我的网站并使用Facebook登录时,我无法识别他们。 有人有什么建议吗 提前感谢, Adam要将Facebook ID存储为数字,需要将字段设置为未签名的BIGINT 然而,现在Facebook将ID的数据类型列为,所以你应该使用字母数字类型来存储它,以避免将来破坏你的应用程序

我在Facebook开发者文档中读到:

身份证 数字字符串 此人的用户帐户的id。此ID对于每个应用程序都是唯一的,不能跨不同的应用程序使用。我们的升级指南提供了有关特定于应用程序的ID的更多信息 核心


当我的用户返回我的网站并使用Facebook登录时,我无法识别他们。 有人有什么建议吗

提前感谢,


Adam

要将Facebook ID存储为数字,需要将字段设置为未签名的BIGINT


然而,现在Facebook将ID的数据类型列为,所以你应该使用字母数字类型来存储它,以避免将来破坏你的应用程序(感谢CBroe指出这一点)

我做了它的记录,但没有显示,因为我的声誉在15岁以下。再次感谢,这是投票。若要接受,请单击分数下的灰色复选框。回答错误。Facebook已经暗示,这种格式可能有一天会改变,应用程序应该准备好处理字母数字ID。将它们存储为文本。它们从一开始就没有“数字”,所以将它们存储为整数是毫无意义的。@CBroe没有看到这一点。有一些升级要做:)。我更新了答案,谢谢。
    $user = $response->getGraphUser();
    $fid = $user['id'];

    echo($fid); //10155784607879101

    //in mysql table i get 2147483647 in the fid column for the following query

    $stmt = $dbh->prepare("INSERT INTO users(fid) VALUES (:fid)");
    $stmt->bindParam(':fid', $fid);
    $stmt->execute();

    //in this case $fid not equals $stmt->bindParam(':fid', $fid);