色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

php 格式化數字的時候注意數字的范圍

構造sql語句是 比起來
復制代碼 代碼如下:
$sql = 'SELECT *
FROM sdb_comments
WHERE goods_id = '.intval($goods_id).'
AND for_comment_id IS NULL
AND object_type = ".$item."
AND disabled="false"
AND display = "true"';

我更喜歡這樣做:
復制代碼 代碼如下:
$sql = sprintf('SELECT *
FROM sdb_comments
WHERE goods_id = %.0f
AND for_comment_id IS NULL
AND object_type = "%s"
AND disabled="false"
AND display = "true"', (float)$goods_id, $item);

這個語句還算 簡單,如果是更復雜的話,用拼接字符串的話,那簡直就是一個噩夢。

使用第二種方式的話,比較方便.但是一個小問題:在格式化數字的時候就需要注意其取值范圍。數字操作了取值反問。那么最后返回的sql 也不是我們需要的。

我今天做了個總結:

%d: 2^31~2^31-1(-2147483648~2147483647) (將int轉化為有符號十進制)

%b:二進制(將int類型的轉化為二進制)

%c:字符(將int類型轉化為字符)

%u: 2^32-1(0 ~ 4294967295) (將int轉化為有符號十進制)

%f: -2^128-2^128(-3.4E38 ~+3.4E38)(將float轉化為float) 本地化

%F: -2^128-2^128(-3.4E38 ~+3.4E38)(將float轉化為float) 非本地化

%o (將int轉化為八進制)

%s:字符串

%x:將int轉化為小寫字母的十六進制

%X:將int轉化為大寫字母的十六進制

因為 數據庫中 id 可能會很大 如果使用%d的話,就可能出現因為超出了范圍,而到不到正確的結果。所以,個人建議 對id進行格式化的時候 使用%.0f 比 %d 要 好的多。

php技術php 格式化數字的時候注意數字的范圍,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 成都市| 井研县| 忻城县| 沾化县| 冷水江市| 阿拉善右旗| 黎平县| 天镇县| 朝阳市| 昌宁县| 钟祥市| 泗洪县| 广元市| 霍林郭勒市| 白城市| 城口县| 龙南县| 六枝特区| 宁陕县| 满洲里市| 屯留县| 湖口县| 嫩江县| 宜宾县| 广丰县| 韩城市| 东兰县| 诸城市| 湛江市| 德安县| 舟曲县| 来凤县| 噶尔县| 龙门县| 旬阳县| 华蓥市| 景东| 左云县| 深泽县| 龙江县| 清水河县|