php中的硬编码数字如何转换为数据库中的另一个数字?奇怪的
我有一只神秘的虫子 好的,我正在使用最新版本的MySQL在LocalHost中工作。我正在使用CodeIgniter(2.0.2) 我试图在模型中实现这样的功能:php中的硬编码数字如何转换为数据库中的另一个数字?奇怪的,php,mysql,facebook,facebook-graph-api,localhost,Php,Mysql,Facebook,Facebook Graph Api,Localhost,我有一只神秘的虫子 好的,我正在使用最新版本的MySQL在LocalHost中工作。我正在使用CodeIgniter(2.0.2) 我试图在模型中实现这样的功能: function saveMyFriends($friends_list){ $this->load->library('encrypt'); foreach($friends_list as $friend){ // echo $friend['id'].' : '.utf8_decod
function saveMyFriends($friends_list){
$this->load->library('encrypt');
foreach($friends_list as $friend){
// echo $friend['id'].' : '.utf8_decode($friend['name']).'</br>';
$query_str ="INSERT INTO sc_friends (fb_id, fb_friends_id, fb_friends_name) VALUES ( ?, ?, ?)";
$fb_id =$this->session->userdata('user_fbid');
$this->db->query($query_str, array($fb_id, $friend['id'], sha1(utf8_decode($friend['name']))));
}
return TRUE;
}
(当然,X不是实数就是实名)
但再一次,在我的数据库中,当我手动输入第三个时(我在这里给出的示例中),我有一个重复出现的“相同id”:“2147483647”
这怎么可能?
谢谢:)2147483647是32位PHP中可表示的最大整数。如果您的数据库库试图将100002869134477这样的较大数字视为整数,则得到的是2147483647。您可以使用浮点数、常量字符串或扩展名,如bcmath或gmp,因为您需要处理更大的数字 2147483647是32位PHP中可表示的最大整数。如果您的数据库库试图将100002869134477这样的较大数字视为整数,则得到的是2147483647。您可以使用浮点数、常量字符串或扩展名,如bcmath或gmp,因为您需要处理更大的数字 Facebook总是将用户Facebook id定义/返回为
字符串,因此我会在数据库中使用varchar()
,而不是bigint()
id-用户的Facebook id。string
Facebook总是将用户Facebook id定义/返回为字符串
,因此我会在数据库中使用varchar()
,而不是bigint()
id-用户的Facebook id。string
不是单独的类型。在64位系统上,当PHP编译为64位二进制时,其整数类型为64位,但在32位系统上,32位是整数类型的结果。好的,谢谢!使用BigInt怎么样?使用BigInt时的签名问题是什么?@MilesM。如果需要,您可以使用gmp或bcmath模块处理更长的数字。然而,我不知道你们数据库库是什么,所以这可能不起作用。您也可以将这些值存储为字符串,而不是整数。而不是单独的类型。在64位系统上,当PHP编译为64位二进制时,其整数类型为64位,但在32位系统上,32位是整数类型的结果。好的,谢谢!使用BigInt怎么样?使用BigInt时的签名问题是什么?@MilesM。如果需要,您可以使用gmp或bcmath模块处理更长的数字。然而,我不知道你们数据库库是什么,所以这可能不起作用。也可以将这些值存储为字符串,而不是整数。
function saveMyTwoFriends(){
$this->load->library('encrypt');
$query_str ="INSERT INTO sc_friends (fb_id, fb_friends_id, fb_friends_name) VALUES ( ?, ?, ?)";
$this->db->query($query_str, array(7518777XX, 1000028691344XX, sha1(utf8_decode('XXX XXXX'))));
return TRUE;
}