数据库中是 unsigned int, 支持40多亿, 但用tp进行查询的时候, where方法会自动把大于2147483647的(有符号int最大值) 转化成 2147483647

print_r($condition);
$Mode->where($condition)->find();
echo $Mode->getlastSql();

结果:

Array
(
[sid] => 2147645095
[type] => icili
)
SELECT * FROM `al_qitadianying` WHERE ( `sid` = 2147483647 ) AND ( `type` = 'icili' ) LIMIT 1

sid 字段是 unsigned in

---------------------------------------------
下面是我自己的测试结果

我测试了,
$data['userID'] = "davidhuang";
$data['sysID'] = 2147645095;
$data['loginTime'] = datetime();
$data['loginStatus'] = 0;
$data['validStatus'] = 0;
$result = M("loginLog")->add($data);
dump(M()->getLastSql());
生成的sql是
INSERT INTO `login_log` (`userID`,`sysID`,`loginTime`,`loginStatus`,`validStatus`) VALUES ('davidhuang',-2147322201,'2013-11-19 09:58:44',0,0)
sysID的类型是
int(11) UNSIGNED
应该是个bug。

测试TP版本 3.1.3

看下tp的源码:
/**
* 数据类型检测
* access protected
* @param mixed $data 数据
* @param string $key 字段名
* return void
*/
protected function _parseType(&$data,$key) {
$fieldType = strtolower($this->fields['_type'][$key]);
if(false !== strpos($fieldType,'int')) {
$data[$key] = intval($data[$key]);
}elseif(false !== strpos($fieldType,'float') || false !== strpos($fieldType,'double')){
$data[$key] = floatval($data[$key]);
}elseif(false !== strpos($fieldType,'bool')){
$data[$key] = (bool)$data[$key];
}
}
它用的是intval,转换后的最大值是2147483647。
API说明:
intval($var, $base)
Get the integer value of a variable
link http://www.php.net/manual/en/function.intval.php
@param var mixed
The scalar value being converted to an integer
@param base int[optional]
The base for the conversion
return int The integer value of var on success, or 0 on failure. Empty arrays and objects return 0, non-empty arrays and objects return 1.
The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647. So for example on such a system, intval('1000000000000') will return 2147483647. The maximum signed integer value for 64 bit systems is 9223372036854775807.
Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of integer casting apply.

thinkphp不会识别unsigned int数据类型,会导致sql执行错误相关推荐

  1. size_t是什么数据类型?为什么要用size_t替代int、unsigned int、unsigned long、unsigned long long

    今天看RXW源码的时候,发现有个代码把for循环的节点定义为size_t类型,我想这个循环才几次啊,你就用size_t,逼装的不错哦!,,那么size_t究竟是嘎哈用的呢?让我们来看看! 别看了,破案 ...

  2. 深入解剖unsigned int 和 int

    就如同int a:一样,int 也能被其它的修饰符修饰.除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种: 1.signed----有符号,可修饰char.int.Int ...

  3. unsigned int 和 int

    就如同int a:一样,int 也能被其它的修饰符修饰.除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种: 1.signed----有符号,可修饰char.int.Int ...

  4. stm32 无符号整形_STM32中“unsigned short”和“unsigned int”的区别是什么?

    展开全部 unsigned long int在C语言中是无符号长整形变量,是整形变量的一e69da5e887aa62616964757a686964616f31333365646331种. unsig ...

  5. c++ 中关于int,unsigned int , short的关系与应用

    int类型比较特殊,具体的字节数同机器字长和编译器有关.如果要保证移植性,尽量用__int16 __int32 __int64吧 __int16.__int32这种数据类型在所有平台下都分配相同的字节 ...

  6. c语言signed int与unsigned int的运算

    一.C语言的int类型与unsigned int运算的问题 1.signed int 可以简写成int ,unsigned int 一般不做简写. 2.在不同类型的混合运算中,编译器也会自动地转换数据 ...

  7. c语言unsigned int 范围,unsigned int 32比特数据范围为-2147

    提到unsigned,大家应该都了解,有朋友问c语言中unsigned什么意思,还有人想问c语言中的unsigned是什么意思,这到底是咋回事?事实上unsigned呢,下面是小编推荐给大家的unsi ...

  8. 笹山希 java,c语言中unsigned int

    C语言的unsigned int是什么意思? - 百度知道 最佳答案: C语言中unsigned int是无符号整数的意思. 无符号整型(unsigned int): (1)我们都知道整型是4个字节( ...

  9. unsigned int用法

    注意使用unsigned int(无符号常数) 正如我们所知道的,编程语句都有很多的基本数据类型,如char,inf,float等等,而在C和C++中还有一个特殊的类型就是无符号数,它由unsigne ...

最新文章

  1. GitHub开源比Hadoop快至少10倍的物联网大数据平台
  2. 这头像是代表入职送理发福利吗?
  3. pandas(一)-- Series创建及索引
  4. covid 19如何重塑美国科技公司的工作文化
  5. 租金 预测_如何预测租金并优化租赁期限,从而节省资金
  6. 计算机网络项目——最小网元设计(阶段四)
  7. php怎么上传函数,【后端开辟】php上传函数怎样封装
  8. Windows xp下IDT Hook和GDT的学习
  9. UDP方式的网络通信【示例】
  10. 深入浅出通信原理MIMO合集
  11. webm格式转换mp4_将webm转换为mp4
  12. keil5怎么放大字体_keil5如何设置字体大小-keil设置字体大小的方法
  13. 小米手机不断自己重启问题解决
  14. 计算机怎么算折扣价格,5折怎么算-商场打折背后的猫腻:满100减50和打5折哪个更划算?...
  15. 奥城大学计算机科学专业,我是学工程专业本科毕业,托福70分,GRE1020分,都很低,我想去美国留学马上走,...
  16. 【跟我学Puppet】1.5 Puppet 3.7 使用Hiera定义配置
  17. 基于SSM+Vue的邮票管理系统的设计与实现Java邮票分享系统邮票鉴定前后端分离(源码调试+讲解+文档)
  18. java线程游戏V4之飞机大战(二)
  19. 商业综合体能耗在线监测管理系统_商场管理平台
  20. 腾讯 爱奇艺服务器(网址)无法访问(打不开,没有网络)

热门文章

  1. php开发博客系统源码,php简单博客系统
  2. Day 4随机过程基本概念 平稳随机过程
  3. 解决安装Ubuntu16.04时因NVIDIA显卡造成的卡在开机logo界面的问题
  4. 麻省理工教授Gilbert Strang最新「线性代数」课程上线
  5. 安装报警防盗监控系统 提高安全意识
  6. 买卖汽车电商交易平台、选车社区论坛、买新车、二手车交易平台、移动端汽车电商平台、web端汽车运营管理平台、供应商管理、营销商管理、新车交易管理、调车管理、汽车顾问、车库管理、出入库管理、Axure原型
  7. 国美与车势达成独家战略合作,共建汽车新零售平台“买车车”
  8. 痞子衡嵌入式:微控制器CPU性能测试基准(EEMBC-CoreMark)
  9. 好书推荐《给孩子讲量子力学》
  10. UA OPTI570 量子力学27 角动量的叠加与Clebsch-Gordan系数