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 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
MySQL授权问题总结
May 06 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP常量define和const的区别详解
May 18 PHP
php实现大文件断点续传下载实例代码
Oct 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
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
js常见表单应用技巧
2008/01/09 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python while 循环使用的简单实例
2016/06/08 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Pandas的Apply函数具体使用
2020/07/21 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
残疾人小组计划书
2014/04/27 职场文书
合作协议书格式
2014/08/19 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
内勤岗位职责
2015/02/10 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL