2010-03-29 13 views
10

hola cada uno tengo un problema en MySQL# 1366 - incorrecta valor entero: MySQL

mi mesa es

  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') 

me sale error siguiente. # 1366 - valor entero incorrecta: '' para la columna 'contact_id' en la fila 1

esta consulta trabajo bien en mi máquina local, pero dará error en el servidor

Respuesta

2

'' no es un entero, ¿verdad?

Además, esa es una sangría muy extraña.

+0

pero funcionan muy bien en locales – rajanikant

+1

funciona bien cuando se tiene un servidor MySQL-Propper sin necesidad de configuración. Vea el MODO SQL: http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html Una buena configuración producirá errores cuando haga algo incorrecto. Insertar una cadena en un campo entero, es incorrecto. –

13

Intente utilizar NULL en lugar de '' para contact_id en

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

gracias, resuelve mi problema – rajanikant

+3

@Rajanikant: De nada :). Además, dado que es nuevo en el desbordamiento de pila, me gustaría informarle que puede aceptar una respuesta que le haya ayudado más al marcar la marca al lado de la respuesta. – codaddict

+2

@codaddict Tengo el mismo problema con MySQL Community Server 5.6.26, pero MySQL se queja de que no puedo insertar 'NULL' en una columna que no sea' 'NULL'. ¿Hay alguna forma de evitarlo, aparte de ejecutar 'SET SQL_MODE = '';' antes de 'INSERT'? – Toothbrush

5

'' es una cadena vacía, usted quiere un número entero, pero este número entero es creado por la base de datos. Coloque el nombre de columna en INSERTAR y no inserte ningún valor.

9

Trata de encontrar la línea siguiente en my.cnf/my.ini:

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 

Ahora comentarlo con # y reiniciar el servidor MySQL.

+5

Probablemente sea mejor corregir los errores en lugar de convertirlos en advertencias desactivando el modo estricto. – David

12

Tenía el mismo problema con algún proyecto heredado. No quería desactivar el modo estricto de forma global, pero tampoco deseaba revisar todo el código para solucionarlo, así que lo deshabilité solo dentro de esa aplicación ejecutando la siguiente consulta una vez que se realizó la conexión a la base de datos. :

SET sql_mode = "" 
+0

Haga clic aquí para más detalles. exactamente? En cada método de modelo? Tengo el mismo problema y bastantes modelos con varios métodos. No vi una forma de incluir en database.php tampoco. Aunque, hay un $ db ['default'] ['stricton '] = FALSE; línea que aparentemente no está ayudando. – zJorge

0

en la consola de MySQL, intente esto:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
Cuestiones relacionadas