php判斷輸入不超過(guò)mysql的varchar字段的長(zhǎng)度范圍
更新時(shí)間:2011年06月24日 21:52:39 作者:
varchar類型字段,如果你設(shè)置長(zhǎng)度為10,那么不論漢字和英文都可以存10個(gè)。
但是如果在utf-8編碼下,一個(gè)漢字是占3個(gè)字符長(zhǎng)度的,比如字符串$str=”你好啊!!”;
如果你用strlen函數(shù)來(lái)判斷,長(zhǎng)度是11,正好超過(guò)了varchar的長(zhǎng)度,但實(shí)際上確不是這樣,如果直接到phpmyadmin里面執(zhí)行insert語(yǔ)句,這條字符串是可以插入的!
對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),它的長(zhǎng)度是5,那么我們?nèi)绾斡肞HP來(lái)得到這個(gè)長(zhǎng)度呢?使用iconv_strlen()函數(shù)!
echo iconv_strlen($str,'utf-8′);
注意第二個(gè)參數(shù),是當(dāng)前字符集,這樣根據(jù)不同的字符集你得到的結(jié)果都是根據(jù)一個(gè)字符占一個(gè)長(zhǎng)度計(jì)算來(lái)的!
上面的語(yǔ)句,將輸出5,怎么樣,你會(huì)判斷了嗎?
如果你用strlen函數(shù)來(lái)判斷,長(zhǎng)度是11,正好超過(guò)了varchar的長(zhǎng)度,但實(shí)際上確不是這樣,如果直接到phpmyadmin里面執(zhí)行insert語(yǔ)句,這條字符串是可以插入的!
對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),它的長(zhǎng)度是5,那么我們?nèi)绾斡肞HP來(lái)得到這個(gè)長(zhǎng)度呢?使用iconv_strlen()函數(shù)!
echo iconv_strlen($str,'utf-8′);
注意第二個(gè)參數(shù),是當(dāng)前字符集,這樣根據(jù)不同的字符集你得到的結(jié)果都是根據(jù)一個(gè)字符占一個(gè)長(zhǎng)度計(jì)算來(lái)的!
上面的語(yǔ)句,將輸出5,怎么樣,你會(huì)判斷了嗎?
相關(guān)文章
php實(shí)現(xiàn)根據(jù)字符串生成對(duì)應(yīng)數(shù)組的方法
這篇文章主要介紹了php實(shí)現(xiàn)根據(jù)字符串生成對(duì)應(yīng)數(shù)組的方法,包含了數(shù)組操作的技巧及eval函數(shù)的用法,需要的朋友可以參考下2014-09-09
php短域名轉(zhuǎn)換為實(shí)際域名函數(shù)
現(xiàn)在很多朋友需要將實(shí)際域名轉(zhuǎn)換為短域名,但也有朋友需要反轉(zhuǎn)查看下實(shí)際域名,那么就可以使用這個(gè)函數(shù)。2011-01-01
PHP連接sql server 2005環(huán)境配置及問(wèn)題解決
這篇文章主要介紹了PHP連接sql server 2005環(huán)境配置及問(wèn)題解決,需要的朋友可以參考下2014-08-08
php的$_FILES的臨時(shí)儲(chǔ)存文件與回收機(jī)制實(shí)測(cè)過(guò)程
上傳文件是怎么個(gè)原理,大概的想了下,應(yīng)該是一種回收機(jī)制:點(diǎn)擊了臨時(shí)文件空間,那么,php自身應(yīng)該自己維護(hù)這塊空間的回收,具體的測(cè)試過(guò)程如下,感興趣的朋友可以參考下哈2013-07-07
php導(dǎo)入excel文件到mysql數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了php導(dǎo)入excel文件到mysql數(shù)據(jù)庫(kù)的方法,分析了phpexcel類操作excel文件的技巧及導(dǎo)入數(shù)據(jù)庫(kù)的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
本地機(jī)apache配置基于域名的虛擬主機(jī)詳解
以下是對(duì)本地機(jī)apache配置基于域名的虛擬主機(jī)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
php中常量DIRECTORY_SEPARATOR用法深入分析
這篇文章主要介紹了php中常量DIRECTORY_SEPARATOR用法深入分析,涉及針對(duì)Linux路徑分隔符不支持\的情況,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
如何讓thinkphp在模型中自動(dòng)完成session賦值小教程
在項(xiàng)目中遇到一個(gè)問(wèn)題,需要讓thinkphp在模型中自動(dòng)完成session賦值,經(jīng)過(guò)一番研究,終于實(shí)現(xiàn),下面記錄一下,另附上thinkPHP的session的相關(guān)知識(shí)2014-09-09

