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+mysql扎实个人基本功
Mar 27 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
PHP的几个常用数字判断函数代码
Apr 24 PHP
PHP小技巧之函数重载
Jun 02 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
Yii2数据库操作常用方法小结
May 04 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
php微信开发之关键词回复功能
Jun 13 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
Python常见数字运算操作实例小结
2019/03/22 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
python编写俄罗斯方块
2020/03/13 Python
python 弧度与角度互转实例
2020/04/15 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
小学国庆节活动总结
2015/03/23 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Mysql事务索引知识汇总
2022/03/17 MySQL