第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

表單字符長度與數(shù)據(jù)庫字段長度

表單字符長度與數(shù)據(jù)庫字段長度

慕容3067478 2019-04-10 20:49:24
html的表單length長度是以字符個數(shù)計算的,不管是漢字還是字母,但是數(shù)據(jù)庫又是按字節(jié)計算的,漢字占2個字母占1個,這樣容易造成寫入的時候長度超出的問題。兩個問題:1.有沒有好的方法,能夠在前端或者php或者mysql之間使用統(tǒng)一的方法計算長度?2.還是只能把數(shù)據(jù)庫長度設(shè)的足夠大,讓表單永遠不會超出?.
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經(jīng)驗 獲得超9個贊

mysql在4.1之后,char和varchar定義的就是字符長度了。
具體可以去看下文檔TheCHARandVARCHARTypes。
而4.1的文檔中有直接提到。
TheCHARandVARCHARtypesaredeclaredwithalengththatindicatesthemaximumnumberofcharactersyouwanttostore.Forexample,CHAR(30)canholdupto30characters.(BeforeMySQL4.1,thelengthisinterpretedasnumberofbytes.)
                            
查看完整回答
反對 回復(fù) 2019-04-10
?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

統(tǒng)一計算長度,是基于“長度”這個概念是一樣的標(biāo)準(zhǔn)的,首先你要規(guī)定你的“長度”指的是什么。
如果“長度”指的字節(jié)長度,那么可以這樣(假設(shè)頁面編碼是utf8):
//javascript
functionlengthInUtf8Bytes(str){
//Matchesonlythe10..bytesthatarenon-initialcharactersinamulti-bytesequence.
varm=encodeURIComponent(str).match(/%[89ABab]/g);
returnstr.length+(m?m.length:0);
}
len=lengthInUtf8Bytes(str);
//php
$len=strlen($str);
//mysql
CREATEDATABASE`byte_test`
CHARACTERSETlatin1
COLLATElatin1_general_ci;
javascript函數(shù)lengthInUtf8Bytes來自于StringlengthinbytesinJavaScript
如果“長度”指的編碼長度,還是假設(shè)頁面utf8編碼:
//javascript
len=str.length;
//php
$len=mb_strlen($str,"UTF-8");
//mysql
CREATEDATABASE`utf8_test`
CHARACTERSETutf8
COLLATEutf8_general_ci;
這樣長度都是一致的,所以要在最開始就定義好你的“長度”指的是什么很重要
                            
查看完整回答
反對 回復(fù) 2019-04-10
  • 2 回答
  • 0 關(guān)注
  • 362 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號