嗨,我在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','abhi@gmail.com','1999/5/16','via vrienden of familie','','19','20','6','1','1','2010-03-29')
我得到以下错误。 #1366 - 不正确的整数值:''用于第1行的'contact_id'列
此查询在我的本地计算机上正常工作但在服务器上出错
答案 0 :(得分:17)
尝试在
中使用NULL
代替''
contact_id
insert into contactform values(NULL,......
答案 1 :(得分:14)
与某些遗留项目存在同样的问题。我不想全局关闭严格模式,但也不想通过所有代码来修复它,所以我只在该应用程序中通过在建立与db的连接后执行以下查询来禁用它:
SET sql_mode = ""
答案 2 :(得分:9)
尝试在my.cnf / my.ini中找到以下行:
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
现在用#注释掉它并重启你的mysql服务器。
答案 3 :(得分:5)
''是一个空字符串,你想要一个整数,但这个整数是由数据库创建的。删除INSERT中的列名,不要插入任何值。
答案 4 :(得分:2)
''
不是整数,是吗?
另外,这是一些非常奇怪的缩进。
答案 5 :(得分:0)
我遇到了同样的问题,但就我而言,我只需要选择AI。我的数据库表上我的ID部分中的(自动递增)按钮。
答案 6 :(得分:-1)
在mysql控制台中,试试这个:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));