MYSQL:int型別升級到bigint,對PHP開發語言影響
這篇文章介紹的內容是關於MYSQL:int類型升級到bigint,對PHP開發語言影響 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
因為業務成長,原有的unsigned int已經不夠使用,需要升級到unsigned bigint
#MYSQL整數支援的範圍:
##https://dev. mysql.com/doc/refman/5.7/en/integer-types.html#
類型 | 儲存 | 最小值 | #最大 |
---|---|---|---|
(位元組) | (有符號/無符號) | (有符號/無符號) | |
## TINYINT | ##1#-128
|
127
| |
# | #0
|
#255
| #|
##SMALLINT ##2 |
#-32768 |
| 32767
|
##0 |
#65535 |
| |
##3
| #-83886088388607 |
|
|
##0
|
#167777215
|
||
|
|
|
|
##4 | #-2147483648
|
2147483647
|
|
##BIGINT ##8 |
#-9223372036854775808 |
| #9223372036854775807##9223372036854775807 |
|
|
可以看到bigint支援的數量級非常大。雖然mysql字段類型調整了,但是我們的開發語言是否支援呢?
PHP5.6 64版本:
#PHP的int型範圍是PHP_INT_MIN(PHP7可用) #-
PHP_INT_MAX
,
例如在x64-php下,int的最大範圍是:9223372036854775807,對應MYSQL的BIGINT型別
!window下PHP7之前的版本總是32位元的,且以下行為會跟下面列出來的點不同
!不支援無符號的整數
超過這個範圍的int數,將會轉換為float型。我們知道,表單提交或從資料庫取出的數據,是字串類型,當我們用PHP進行運算的時候,以下幾點需要注意的:
可參考:http://php .net/manual/zh/language.types.integer.php
#1)intval函數,此函數輸出只支援int型範圍,超過這個範圍的需要使用字串表示
$number = "9223372036854775900"; var_dump(intval($number)); //output,默认返回PHP_INT_MAX最大值 int(9223372036854775807)
#2)int型態作為陣列鍵值,會溢出,因此解決方案需要把鍵轉換為字串
$arr = [];
$arr[9223372036854775900] = '1';
var_dump($arr);
//output
array(1) {
[-9223372036854775808]=>
string(1) "1"
}
#3) json_decode影響
如果資料超出了int的範圍,解析出來的是float型
$str = '[9223372036854775807,9223372036854775907]'; var_dump(json_decode($str)); //output array(2) { [0]=> int(9223372036854775807) [1]=> float(9.2233720368548E+18) }
以上是MYSQL:int型別升級到bigint,對PHP開發語言影響的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

使用 Navicat Premium 創建數據庫:連接到數據庫服務器並輸入連接參數。右鍵單擊服務器並選擇“創建數據庫”。輸入新數據庫的名稱和指定字符集和排序規則。連接到新數據庫並在“對象瀏覽器”中創建表。右鍵單擊表並選擇“插入數據”來插入數據。

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

可在 Navicat 中通過以下步驟新建 MySQL 連接:打開應用程序並選擇“新建連接”(Ctrl N)。選擇“MySQL”作為連接類型。輸入主機名/IP 地址、端口、用戶名和密碼。 (可選)配置高級選項。保存連接並輸入連接名稱。

可以通過以下步驟打開 phpMyAdmin:1. 登錄網站控制面板;2. 找到並點擊 phpMyAdmin 圖標;3. 輸入 MySQL 憑據;4. 點擊 "登錄"。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。
