2010-03-29 103 views
10

喜逢我有MySQL中的问题#1366 - 不正确的整数值的:mysql

我的表是

  CREATE TABLE IF NOT EXISTS `contactform` (
        `contact_id` int(11) NOT NULL AUTO_INCREMENT, 
        `first_name` varchar(50) NOT NULL, 
        `addition` varchar(50) NOT NULL, 
        `surname` varchar(50) NOT NULL, 
        `Address` varchar(200) NOT NULL, 
        `postalcode` varchar(20) NOT NULL, 
         `city` varchar(50) NOT NULL, 
         `phone` varchar(20) NOT NULL, 
         `emailaddress` varchar(30) NOT NULL, 
          `dob` varchar(50) NOT NULL, 
           `howtoknow` varchar(50) NOT NULL, 
          `othersource` varchar(50) NOT NULL, 
          `orientationsession` varchar(20) NOT NULL, 
           `othersession` varchar(20) NOT NULL, 
            `organisation` int(11) NOT NULL, 
             `newsletter` int(2) NOT NULL, 
             `iscomplete` int(11) NOT NULL, 
          `registrationdate` date NOT NULL, 
          PRIMARY KEY (`contact_id`) 
        ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ; 



      mysql>insert into contactform values('','abhi','sir','shukla','vbxcvb','342342','asdfasd','234234234','[email protected]','1999/5/16','via vrienden of familie','','19','20','6','1','1','2010-03-29') 

我得到以下错误。 #1366 - 不正确的整数值:“在行1

此查询做工精细”列“CONTACT_ID”我的本地计算机上,但给出的服务器错误

回答

2

''不是整数,是吗?

此外,这是一些严重的奇怪的缩进。

+0

但当地 – rajanikant 2010-03-29 06:52:51

+1

做工精细,它工作正常,当你有一个MySQL服务器不propper配置。请参阅SQL模式:http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html如果出现错误,一个好的配置会产生错误。将字符串插入整数字段是错误的。 – 2010-03-29 06:56:17

13

尝试使用NULL代替''contact_id

insert into contactform values(NULL,...... 
+2

感谢它解决我的问题 – rajanikant 2010-03-29 06:58:08

+3

@Rajanikant:欢迎您:)。此外,由于您是Stack overflow的新手,我想告诉您,您可以通过选中答案旁边的勾号来接受最能帮助您的答案。 – codaddict 2010-03-29 07:00:25

+2

@codaddict我在MySQL社区服务器5.6.26中遇到了同样的问题,但是MySQL抱怨说我不能将'NULL'插入到非'NULL'列中。除了在'INSERT'之前运行'SET SQL_MODE ='''之外,还有其他解决方法吗? – Toothbrush 2015-10-06 13:20:23

5

“”是一个空字符串,你想要一个整数,而是由数据库中创建这个整数。在INSERT中删除列名并且不要插入任何值。

9

试图找到下面一行在my.cnf/my.ini文件:

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 

现在用#注释掉,然后重新启动MySQL服务器。

+5

修复错误可能更好,而不是通过关闭严格模式将其转换为警告。 – David 2013-09-24 13:32:01

12

对一些传统项目有同样的问题。我不想在全局关闭严格模式,但也不想通过所有的代码来修复它,所以我只在该应用程序中通过执行下面的查询来禁用它,连接到db之后:

SET sql_mode = "" 
+0

请详细说明此问题。对于每个模型方法,我都有同样的问题,并且有很多模型和几个方法。没有看到包含在database.php中的一种方法。虽然,有一个$ db ['default'] ['stricton '] = FALSE;显然没有帮助的行。 – zJorge 2017-04-19 15:17:25

0

在MySQL控制台,试试这个:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
相关问题