在Facebook上记录用户时出错

Dan*_*iel 2 php facebook facebook-graph-api

我在Facebook上有一个应用程序,我在我的数据库上记录用户(脚本检查用户是否已经在数据库中,如果没有,则添加他).users表只有一个字段 - "userid",这是一个主键.

检查用户是否已在db中注册的脚本是:

    $selectuser = $db->query("SELECT * FROM `predictorusers` WHERE `userid`='$user'");
if ($db->countRows($selectuser) == 0)
    $db->query("INSERT INTO `predictorusers` (`userid`) VALUES ('$user')");
Run Code Online (Sandbox Code Playgroud)

现在问题:我不知道为什么,但对于特定的用户(对于大多数用户,如果工作得很好)它插入id 2147483647(甚至不存在于Facebook !!),当他进入应用程序再次,他收到以下消息:

键1的重复条目"2147483647"

就像它试图再次添加它,即使它已经存在于db !!

任何人都可以搞清楚吗?

Sha*_*ker 8

它是关于MySQL中字段的定义.我确定你的字段设置为INT类型.

对于密钥1重复输入'2147483647'= = MySQL中此类型的最大数量.

因此,当FB ID大于此值时,MySQL会将其设置为允许的最大值,因此当ID很大时,会给出重复项,因为条目必须是唯一的.

将字段更改为VARCHAR(255),您的问题将得到解决.

ALTER predictorusersALTER COLUMN useridVARCHAR(255)NULL