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 MySQL与分页效率
Jun 04 PHP
url decode problem 解决方法
Dec 26 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
用php来限制每个ip每天浏览页面数量的实现思路
Feb 24 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
PHP7数组的底层实现示例
Aug 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 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python Celery多队列配置代码实例
2019/11/22 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
新学期红领巾广播稿
2014/01/14 职场文书
品酒会策划方案
2014/05/26 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
7个关于Python的经典基础案例
2021/11/07 Python
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA
Java 异步任务计算FutureTask
2022/04/28 Java/Android