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 相关文章推荐
php4的session功能评述(一)
Oct 09 PHP
在php MYSQL中插入当前时间
Apr 06 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
PHP实现的封装验证码类详解
Jun 18 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP浮点比较大小的方法
Feb 14 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
PHP单态模式简单用法示例
Nov 16 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
php fread函数使用方法总结
2019/05/28 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
取得传值的函数
2006/10/27 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
matplotlib实现区域颜色填充
2019/03/18 Python
Python能做什么
2020/06/02 Python
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
服装销售人员求职自我评价
2013/09/26 职场文书
大学生个人推荐信范文
2013/11/25 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
租赁协议书
2015/01/27 职场文书
开除通知书范本
2015/04/25 职场文书
社区服务理念口号
2015/12/25 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
redis 存储对象的方法对比分析
2021/08/02 Redis
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python