Php 在facebook上记录用户时出错
我在facebook上有一个应用程序,我将用户记录在我的数据库中(一个脚本检查用户是否已经在数据库中,如果没有,则添加他)。users表只有一个字段-“userid”,它是主键 检查用户是否已在数据库中注册的脚本为:Php 在facebook上记录用户时出错,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我在facebook上有一个应用程序,我将用户记录在我的数据库中(一个脚本检查用户是否已经在数据库中,如果没有,则添加他)。users表只有一个字段-“userid”,它是主键 检查用户是否已在数据库中注册的脚本为: $selectuser = $db->query("SELECT * FROM `predictorusers` WHERE `userid`='$user'"); if ($db->countRows($selectuser) == 0) $db-&g
$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上根本不存在!!),当他再次进入应用程序时,他会收到以下消息:
键1的重复条目“2147483647”
就像它试图再次添加它,即使它已经存在于数据库中
有人能理解吗?这是关于MySQL中字段的定义。我确信您的字段设置为INT类型 键1的重复条目“2147483647==MySQL中此类型的最大数量 因此,当FB ID大于此值时,MySQL会将其设置为允许的最大值,从而在ID较大时为您提供重复项,因为条目必须是唯一的 将字段更改为VARCHAR(255),您的问题将得到解决 ALTER
predictor用户
ALTER列userid
VARCHAR(255)NULL改用BIGINT(20)作为数据类型。FB ID太大了