2011-01-06 50 views
0

我有一個表在MySQL與一個名爲 「用戶id」 字段:int值的變化 - PHP

`userId` int(20) NOT NULL 

INSERT語句:

$result = mysql_query("INSERT INTO users (userId, firstName, lastName, dateCreated) VALUES (".$me['userId'].", '".$me['first_name']."', '".$me['last_name']."', CURDATE()) ")or die(mysql_error()); 

用戶id時的值在php中回顯是100000517980247,但是當它插入時它變爲2147483647.當我將它插入到varchar字段中時它很好。這必須是非常簡單的事情,但我搜索了一下,我只是沒有看到它。

回答

7

MySQL ints是一個帶符號的32位整數。您插入的數字遠遠超出了限制,因此您會看到最大可能的整數,即2147483647.

將數據類型更改爲「bigint」以獲得64位數據類型,它將處理您的數字。

+0

謝謝!似乎在這種情況下異常會更有用,而不僅僅是插入可接受的值。 – tessa 2011-01-06 04:18:02