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 相关文章推荐
Zend 输出产生XML解析错误
Mar 03 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
php中文验证码实现方法
Jun 18 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
简单实现PHP留言板功能
Dec 21 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 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函数和特点
2013/08/08 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
PHP7内核之Reference详解
2019/03/14 PHP
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python读写配置文件的方法
2015/06/03 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Django中间件实现拦截器的方法
2018/06/01 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
python+pygame实现坦克大战
2019/09/10 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
党性教育心得体会
2014/09/03 职场文书
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android