Ответ 1
Попробуйте использовать NULL
вместо ''
для contact_id
в
insert into contactform values(NULL,......
Привет всем, у меня есть проблема в 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 - Неправильное целочисленное значение: '' для столбца 'contact_id' в строке 1
этот запрос работает нормально на моей локальной машине, но дает ошибку на сервере
Попробуйте использовать NULL
вместо ''
для contact_id
в
insert into contactform values(NULL,......
Имела ту же проблему с некоторым унаследованным проектом. Я не хотел отключать строгий режим в глобальном масштабе, но также не хотел проходить весь код, чтобы исправить его, поэтому я отключил его только внутри этого приложения, выполнив следующий запрос один раз после того, как соединение с db сделано
SET sql_mode = ""
Попробуйте найти следующую строку в my.cnf/my.ini:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Теперь прокомментируйте это с помощью # и перезапустите сервер mysql.
'' - пустая строка, вам нужно целое число, но это целое число создается базой данных. Отбросьте имя столбца в INSERT и не вставляйте никаких значений.
''
не является целым числом, не так ли?
Кроме того, это какой-то серьезный странный отступ.
У меня была та же проблема, но в моем случае мне нужно было только выбрать кнопку AI (автоинкремент) в разделе идентификаторов в моей базе данных.
В консоли mysql попробуйте следующее:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));