php 格式化数字的时候注意数字的范围


Posted in PHP onApril 13, 2010

构造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 程序员也要学会使用“异常”
Jun 16 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
TP5框架安全机制实例分析
Apr 05 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
Sep 17 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 #PHP
php 上传功能实例代码
Apr 13 #PHP
php array_search() 函数使用
Apr 13 #PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 #PHP
php读取javascript设置的cookies的代码
Apr 12 #PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 #PHP
php Smarty模板生成html文档的方法
Apr 12 #PHP
You might like
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
九步学会Python装饰器
2015/05/09 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
详解python pandas 分组统计的方法
2019/07/30 Python
django之自定义软删除Model的方法
2019/08/14 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
python RSA加密的示例
2020/12/09 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
消防宣传口号
2014/06/16 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers