2013-09-25 54 views
0
$_GET[id]; 

$id=(int)$_GET['id']; 

mysql store - int 

我有一個關於將字符串轉換爲整數的問題。當字符串轉換爲整數超過2147483647

(轉換後的ID,以確保用戶不發送字符串)

和MySQL存儲類型 - 詮釋


如果ID大於2147483647大我注意到,變得瘋狂的數量。

如果網站帖子超過2147483647怎麼辦?

是什麼方法將它轉換成bigint?或者我不應該將字符串轉換爲int?

我有更改mysql存儲類型爲 - bigint嗎?

+0

_數字變得瘋狂._你是什麼意思? –

+0

我不知道有任何網站在同一張表中有20億個帖子。 – mavrosxristoforos

+0

無符號,BIGINT。 – Mark

回答

1

在MySql can only go up to 2^31已簽名INT,所以是的 - 你必須將列轉換爲BIGINT

除此之外,你還必須處理PHP的限制。 PHP中的整數不能大於PHP_INT_MAX(確切值取決於環境),因此如果您堅持原語,則大於該值的數字必須以字符串或浮點形式處理。將值保持爲字符串應該是可以的,因爲它是一個id,並且不會用id做數學運算。