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者的疑难问答(2)
Oct 09 PHP
PHP nl2br函数 将换行字符转成 <br>
Aug 21 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
PHP中文乱码解决方案
Mar 05 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
laravel中的一些简单实用功能
Nov 03 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
pdo中使用参数化查询sql
2011/08/11 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
python爬虫要用到的库总结
2020/07/28 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
总账会计岗位职责
2014/03/13 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
幼儿学前班评语
2014/12/29 职场文书
村官个人总结范文
2015/03/03 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
改造DE1103三步曲
2022/04/07 无线电