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 相关文章推荐
php文件上传的简单实例
Oct 19 PHP
php实现httpclient类示例
Apr 08 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
php实现文件预览功能
May 23 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 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面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
Python类及获取对象属性方法解析
2020/06/15 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
办公室前台岗位职责
2014/01/04 职场文书
小学教师师德反思
2014/02/03 职场文书
高级销售求职信
2014/02/21 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang