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 array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
PHP发送AT指令实例代码
May 26 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
php表单处理操作
Nov 16 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 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中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
js调试系列 初识控制台
2014/06/18 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python实现图像识别功能
2018/01/29 Python
django 多数据库配置教程
2018/05/30 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
python常用排序算法的实现代码
2019/11/08 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
美国校园市场:OCM
2017/06/08 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
母亲节演讲稿
2014/05/27 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
2014会计年终工作总结
2014/12/20 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
docker 制作mysql镜像并自动安装
2022/05/20 Servers