php中的硬编码数字如何转换为数据库中的另一个数字?奇怪的

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

我有一只神秘的虫子

好的,我正在使用最新版本的MySQL在LocalHost中工作。我正在使用CodeIgniter(2.0.2) 我试图在模型中实现这样的功能:

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;
}