2010-03-29 6 views
10

Salut tout le monde j'ai un problème dans MySQL# 1366 - valeur entière incorrect: MYsql

ma table est

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

i get suivantes erreur. # 1366 - valeur entière incorrect: « » pour la colonne « contact_id » à la ligne 1

ce travail demande bien sur ma machine locale, mais donner une erreur sur le serveur

Répondre

2

'' est pas un entier, est-il?

En outre, c'est une indentation très bizarre.

+0

mais il fonctionne bien sur – rajanikant

+1

locale il fonctionne très bien lorsque vous avez un serveur MySQL sans configuration propper. Voir le MODE SQL: http://dev.mysql.com/doc/refman/5.1/fr/server-sql-mode.html Une bonne configuration produira des erreurs si vous faites quelque chose de mal. L'insertion d'une chaîne dans un champ entier est incorrecte. –

13

Essayez d'utiliser NULL au lieu de '' pour contact_id dans

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

merci de résoudre mon problème – rajanikant

+3

@Rajanikant: Vous êtes les bienvenus :). De plus, étant donné que vous ne connaissez pas le débordement de Stack, je voudrais vous informer que vous pouvez accepter une réponse qui vous a le plus aidé en cochant la case à côté de la réponse. – codaddict

+2

@codaddict J'ai le même problème avec MySQL Community Server 5.6.26, mais MySQL se plaint de ne pas pouvoir insérer 'NULL' dans une colonne non -NULL. Y a-t-il un moyen de contourner cela, à part exécuter 'SET SQL_MODE = '';' avant le 'INSERT'? – Toothbrush

5

« » est une chaîne vide, vous voulez un entier, mais cet entier est créé par la base de données. Déposez le nom de la colonne dans l'INSERT et n'insérez aucune valeur.

9

Essayez de trouver la ligne suivante dans my.cnf/my.ini:

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 

commentaire Maintenant aveC# et redémarrez votre serveur MySQL.

+5

Il est probablement préférable de corriger les erreurs plutôt que de simplement les convertir en avertissements en désactivant le mode strict – David

12

Avait le même problème avec certains projets hérités. Je ne voulais pas désactiver globalement le mode strict, mais je ne voulais pas non plus passer tout le code pour le réparer, donc je l'ai désactivé uniquement dans cette application en exécutant la requête suivante une fois la connexion à la base de données faite :

SET sql_mode = "" 
+0

Veuillez préciser. Sur chaque méthode de modèle, j'ai le même problème et pas mal de modèles avec plusieurs méthodes, je n'ai pas trouvé de moyen de l'inclure dans database.php, bien qu'il y ait un $ db ['default'] ['stricton '] = FAUX, une ligne qui n'aide apparemment pas. – zJorge

0

Dans la console mysql, essayez ceci:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
Questions connexes