2010-03-29 32 views
10

hallo jeder ich ein Problem in MySQL habe# 1366 - Falscher Integer-Wert: mySQL

mein Tisch ist

  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 Fehler folgenden erhalten. # 1366 - Falscher Integer-Wert: ‚‘ für die Spalte ‚contact_id‘ in Zeile 1

diese Abfrage funktioniert auf meinem lokalen Rechner, sondern gibt Fehler auf dem Server

Antwort

2

'' nicht eine ganze Zahl ist, oder?

Auch das ist eine wirklich seltsame Einrückung.

+0

aber auf lokale – rajanikant

+1

gut funktionieren es funktioniert gut, wenn Sie einen MySQL-Server ohne Konfiguration Propper haben. Siehe den SQL-MODUS: http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html Eine gute Konfiguration wird Fehler erzeugen, wenn Sie etwas falsch machen. Das Einfügen eines Strings in ein Integer-Feld ist falsch. –

13

Try NULL statt '' für contact_id in

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

danke es mein Problem lösen – rajanikant

+3

@Rajanikant: Gern geschehen :). Auch da Sie neu sind Überlauf Stack, ich möchte Ihnen mitteilen, dass Sie eine Antwort akzeptieren können, die Ihnen am meisten geholfen, indem das Häkchen Überprüfung neben der Antwort. – codaddict

+2

@codaddict Ich habe das gleiche Problem mit MySQL Community Server 5.6.26, aber MySQL beschwert sich, dass ich 'NULL' nicht in eine Nicht-' NULL' Spalte einfügen kann. Gibt es einen anderen Weg, abgesehen von SET SQL_MODE = ''; 'vor dem' INSERT'? – Toothbrush

5

'' verwendet, ist ein leerer String, Sie eine ganze Zahl wollen, aber diese ganze Zahl ist durch die Datenbank erstellt. Löschen Sie den Spaltennamen im INSERT und fügen Sie keinen Wert ein.

9

Versuchen folgende Zeilen in my.cnf/my.ini zu finden:

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 

es jetzt mit # und starten Sie Ihren MySQL-Server auf Kommentar.

+5

Es ist wahrscheinlich besser, die Fehler zu beheben, anstatt sie durch Ausschalten strikten Modus zu Warnungen nur konvertieren – David

12

Hatte das gleiche Problem mit einigen Legacy-Projekt. Ich wollte den strikten Modus nicht global deaktivieren, wollte aber auch nicht den gesamten Code durchlaufen, um den Fehler zu beheben. Deshalb habe ich ihn nur innerhalb dieser Anwendung deaktiviert, indem ich die folgende Abfrage einmal nach der Verbindung zur Datenbank ausgeführt habe :

SET sql_mode = "" 
+0

näher darauf eingehen Bitte Wo.. genau? auf jedem Modell Methoden? ich habe das gleiche Problem und eine ganze Reihe von Modellen mit mehreren Methoden. haben Sie nicht sehen, wie man in database.php entweder aufzunehmen. Obwohl es ein $ db [ ‚default‘] ist [ 'stricton '] = FALSE, Zeile, die scheinbar nicht hilft. – zJorge

0

In mysql-Konsole, versuchen Sie dies:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
Verwandte Themen