php – 插入mysql的值与查询字符串中的值不同
发布时间:2020-12-13 17:42:21 所属栏目:PHP教程 来源:网络整理
导读:我正在使用facebook api来获取用户的facebook id,然后将其插入到 mysql中.它在大多数情况下工作正常.但是,由于某些奇怪的原因,插入到我的数据库中的fb_id列的值与应该插入查询字符串中的值不同.我的代码如下: $facebook = new Facebook(array('appId' = '12
我正在使用facebook api来获取用户的facebook id,然后将其插入到
mysql中.它在大多数情况下工作正常.但是,由于某些奇怪的原因,插入到我的数据库中的fb_id列的值与应该插入查询字符串中的值不同.我的代码如下:
$facebook = new Facebook(array( 'appId' => '12345','secret' => '12345','cookie' => true )); $access_token = $facebook->getAccessToken(); if($access_token != "") { $user = $facebook->getUser(); if($user != 0) { $user_profile = $facebook->api('/me'); $fb_id = $user_profile['id']; $fb_first_name = $user_profile['first_name']; $fb_last_name $user_profile['last_name']; $fb_email = $user_profile['email']; $img_data = file_get_contents('https://graph.facebook.com/'.$fb_id.'/picture?type=large'); $save_path = 'img/profile_pics/large/'; file_put_contents(''.$save_path.''.$fb_id.'.jpg',$img_data); $insert = "INSERT INTO users (first_name,last_name,email,photo,fb_id,accuracy_rate,date_joined,date_joined_int) VALUES ('".$fb_first_name."','".$fb_last_name."','".$fb_email."','".$fb_id.".jpg','".$fb_id."','100','".date("F j,Y")."','".idate("z")."')"; $result = mysql_query($insert)or die(mysql_error()); } } 插入数据库的值是“2147483647”.正确的值应为“100000034641562”.奇怪的是,标题为“照片”的列应该填充一个等于“”的值.$fb_id.“.jpg”.基本上,facebook id最后只有一个“.jpg”.该列具有插入其中的正确值(100000034641562.jpg).但是,fb_id列不是.我想也许我不得不调整列长度的整理,但这不是问题. 有任何想法吗? 谢谢, 长矛 解决方法
您正在达到INT数据类型的限制,在
2147483647处为32位.您需要将列的数据类型更改为VARCHAR()或更大的整数值,例如BIGINT.
ALTER TABLE users MODIFY fb_id BIGINT; 查看MySQL’s documentation on integer data types的相关限制. 对于一些幽默的背景,read this story在The Daily WTF. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |