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.ini中文版
Oct 09 PHP
php实现文件下载更能介绍
Nov 23 PHP
php开发工具有哪五款
Nov 09 PHP
PHP6新特性分析
Mar 03 PHP
php上传大文件设置方法
Apr 14 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
Smarty模板语法详解
Jul 20 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 和 XML: 使用expat函数(二)
2006/10/09 PHP
php读取数据库信息的几种方法
2008/05/24 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
php四种定界符详解
2017/02/16 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript json2 使用方法
2010/03/16 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
python Flask实现restful api service
2017/12/04 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python、Matlab求定积分的实现
2019/11/20 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
幼儿园父亲节活动方案
2014/03/11 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书