php - 在 Facebook 上登录用户时出错

标签 php facebook facebook-graph-api

我在 facebook 上有一个应用程序,我将用户记录在我的数据库中(一个脚本检查用户是否已经在数据库中,如果没有,它会添加他)。 users 表只有一个字段——“userid”,这是一个主键。

检查用户是否已经在数据库中注册的脚本是:

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

现在问题来了:我不知道为什么,但是对于一个特定的用户(对于大多数用户来说,如果工作正常的话)它插入了 id 2147483647(它甚至在 facebook 上都不存在!!),当他再次进入应用程序,他收到以下消息:

Duplicate entry '2147483647' for key 1

就像它试图再次添加它,即使它已经存在于数据库中!

谁能算出来?

最佳答案

关于MySQL中字段的定义。我确定您的字段设置为 INT 类型。

键 1 的重复条目“2147483647”== MySQL 中此类型的最大数量。

因此,当 FB ID 大于此值时,MySQL 会将其设置为允许的最大值,因此当 ID 较大时会为您提供重复项,因为条目必须是唯一的。

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

ALTER 预测用户 ALTER COLUMN userid VARCHAR(255) NULL

关于php - 在 Facebook 上登录用户时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7615156/

相关文章:

facebook - 如何生成访问 token 来检索 Facebook 广告报告统计信息?

ios - ASIHTTPRequest 缓存禁用

facebook-graph-api - Facebook API - 没有回复电子邮件

php - 如何让php连接到mysql?

PHP - 调用名称存储在变量中的方法

facebook - 获取在 facebooks instagram graph api 中发表评论的用户

ios - 为什么我收到 com.facebook.sdk.login 错误 308?

php - 使用 php 脚本跟踪 php 电子邮件?

php - 使用 yii 连接 mysql 时访问被拒绝

Android获取Facebook共同好友如何填写USER ID?