-1
:PHP/MySQL的unsigned int類型轉換爲簽署在MySQL INT
select CAST(17640478426339470149 as SIGNED INTEGER); #-806265647370081467
在PHP
:
echo sprintf("%d", 17640478426339470149); #-806265647370082304
我怎麼會得到相同符號整型? (以及爲什麼會發生這種差異?)
檢查整數大小,從而確定上限/下限。 – SparKot 2013-03-25 16:32:10
在我用WAMP的32位x86 Windows XP上,PHP獲得'0'(4個八位字節整數),MySQL似乎使用8個八位字節整數。 – SparKot 2013-03-25 16:45:28
嘗試'var_dump(17640478426339470149)'它可能是一個double而不是int。這將解釋最後一位數字中的錯誤。 – Vatev 2013-03-25 18:04:01