php int型的最大值引起的問題


     開發測試中遇到一個問題:mysql表其中的一個字段是無符號bigint,算了一下可以輸入20位的整數,但是測試的時候輸入20個9就超限了,無符號的范圍是0到18446744073709551615

於是在代碼中加限制到19位整數,結果輸入19個9,保存成功了,但是保存后的數據是“9223372036854775807”,這次問題肯定出在代碼,估計保存之前數值已經變了。

查資料。跟php 的int最大值有關。echo PHP_INT_SIZE輸出8,echo PHP_INT_MAX輸出9223372036854775807

於是在代碼中將獲取的這個變量作為字符串,結果問題就解決了。

$frequency = I('post.frequency/d', 0);變為 $frequency = I('post.frequency/s', 0);

 

 
         
         
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM