php数据入库前清理 注意php intval与mysql的int取值范围不同


Posted in PHP onDecember 12, 2010

php保存数据到mysql
打算在dao层进行数据入库前的清理,比如varchar进行trim,int进行intval。
有一天突然想起,php intval的取值范围与mysql的int类型一样吗?
查了一下,不一样……
http://php.net/manual/en/function.intval.php
http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types
php intval的取值范围:与操作系统相关,32位系统上为-2147483648到2147483647,64位系统上为-9223372036854775808到9223372036854775807。
mysql int取值范围:与操作系统无关,为-2147483648到2147483647,无符号为0到4294967295。
mysql bigint取值范围:与操作系统无关,为-9223372036854775808到9223372036854775807,无符号为0到18446744073709551615。
所以下面的代码是错误的:

public function insert($data) 
{ 
if(isset($data['content'])&&!empty($data['content'])) 
{ 
$data_for_query['content'] = trim($data['content']); 
} 
else 
{ 
return false; 
} 
if(isset($data['user_id'])&&!empty($data['user_id'])) 
{ 
$data_for_query['user_id'] = intval($data['user_id']); 
} 
else 
{ 
return false; 
} 
$sql = "INSERT INTO `".$this->table_name."` (".$this->db->implodeToColumn(array_keys($data_for_query)).") VALUES (".$this->db->implodeToValues(array_values($data_for_query)).")"; 
$this->db->query($sql); 
$id = $this->db->lastInsertId(); 
if(empty($id)) 
{ 
return false; 
} 
else 
{ 
return $id; 
} 
}

解决办法:还在想,准备用正则表达式。
PHP 相关文章推荐
967 个函式
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
Android AsyncTack 异步任务实例详解
Nov 02 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
PHP实现的策略模式示例
Mar 20 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
php intval函数用法总结
Apr 14 PHP
php 高性能书写
Dec 11 #PHP
php foreach 参数强制类型转换的问题
Dec 10 #PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 #PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 #PHP
php iconv() : Detected an illegal character in input string
Dec 05 #PHP
php printf输出格式使用说明
Dec 05 #PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 #PHP
You might like
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
JS日历 推荐
2006/12/03 Javascript
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
Python程序运行原理图文解析
2018/02/10 Python
Django的Modelforms用法简介
2019/07/27 Python
python实现TCP文件传输
2020/03/20 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
台湾良兴购物网:EcLife
2019/12/01 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
技术总监个人的自我评价范文
2013/12/18 职场文书
给公司的建议书范文
2014/05/13 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
伏羲庙导游词
2015/02/09 职场文书
Python基础之数据结构详解
2021/04/28 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers