网硕互联技术交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2878|回复: 0

Mysql Incorrect integer value(1366)错误解决方法

[复制链接]

主题

帖子

0

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
0
发表于 2016-12-7 09:12:51 | 显示全部楼层 |阅读模式

insert into log values('','admin','31','physics')
这样写就会报错:
Incorrect integer value: '' for column 'id' at row 1
这种应该是版本问题,尤其是虚拟主机。
把''改成null不会出错:
insert into log values(null,'admin','31','physics')
insert into log values(' ','admin','31','physics')//加个空格

这种问题一般MySQL 5.x上出现。我用的mysql5.1,后面查询得知新版本mysql对空值插入有"bug",要在安装mysql的时候去除默认勾选的enable strict SQL mode。如果已经安装好了的,就在my.ini中查找sql-mode,默认为sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",将其修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可。

发现以前的程序居然不能正常运行,提示信息如下:
Database error: Invalid SQL: INSERT INTO Survey_UserHistory(userId,jobId,type,action,startTime,endTime) VALUES(’17′,”,’User’,’Login’,”,’2008-11-23 14:33:56′)
MySQL error: 1366 (Incorrect integer value: ” for column ‘jobId’ at row 1)
Session halted.

第一时间的反应是跟mysql5.0新加的sql-mode有关系,因为前一阵子刚刚看过手册.果然,作了如下更改后就不再提示了.

修改 my.ini 文件.


  1. # Set the SQL mode to strict
  2. sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
复制代码

改为:

  1. # Set the SQL mode to strict
  2. sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
复制代码


重启Mysql 数据库服务


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网硕互联技术交流社区

GMT+8, 2024-4-19 16:45 , Processed in 0.211750 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表