Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL Server Incorrect integer value

Frage Entwicklung Datenbanken

Mitglied: Crimson

Crimson (Level 1) - Jetzt verbinden

20.03.2010 um 17:27 Uhr, 6901 Aufrufe, 10 Kommentare

Ich habe ein Integer Problem...

Ich momentan laufen meine PHP Scripte auf einem Linux Webspace, wir haben uns nun entschlossen auf einen Server umzusteigen.
Wir haben uns für einen Windows Server entschieden, ob das nun gut, schlecht, vor- oder unvorteilhaft ist sei dahingestellt!

Ich benutze den Microsoft Webserver IIS 7.5, den MySQL Server (Version: 5.1.44-community) und PHP 5.2.13

Jetzt zu meinem Problem, wenn ich ein Script aufrufe in dem ein Integer Wert nicht gegeben, also leer ist, dann sendet er mir verständlicherweise Incorrect integer value zurück.
Auf dem Linux Space wurde sowas aber einfach umgewandelt in den Wert 0 und somit wurden keine Fehler fabriziert, kann mir jemand von euch helfen das das auch so auf der Windows Maschine geht.

Den ganzen Code umscheiben das ist keine Lösung für mich und würde auch sehr lange dauern.


Liebe Grüße
Crimson
Mitglied: Dani
20.03.2010 um 23:23 Uhr
Hi Crimson,
es wäre hilfreich wenn du die entsprechenden Zeilen noch posten würdest. Denn eigentlich sollte das Statement auf beiden Typen funktionieren bzw. ich entwickle auf Windows und Produktiv läuft die Seite auf Linux und noch nie Probleme gehabt - außer du benutzt spezielle Funktionen.


Grüße,
Dani
Bitte warten ..
Mitglied: Crimson
24.03.2010 um 00:40 Uhr
Incorrect integer value: '' for column 'tech_old_rank' at row 1
INSERT INTO game_uni1statpoints SET `id_owner` = '2', `id_ally` = '3', `stat_type` = '1', `stat_code` = '1', `tech_points` = '55104557.4', `tech_count` = '224', `tech_old_rank` = '', `build_points` = '10025456365478', `build_count` = '2401', `build_old_rank` = '', `defs_points` = '975787985', `defs_count` = '366670312', `defs_old_rank` = '', `fleet_points` = '9620798118', `fleet_count` = '1963174204', `fleet_old_rank` = '', `total_points` = '10036108056138', `total_count` = '2329847141', `total_old_rank` = '0', `stat_date` = '1269384708';

So sieht die Fehlermeldung aus, es ist schon klar das tech_old_rank keinen Wert hat, dennoch funktioniert dies unter dem auf Linux basierenden Webserver und auf meinem Laptop.
Auf meinem Laptop läuft XAMPP als Umgebung.
Bitte warten ..
Mitglied: Dani
24.03.2010 um 18:37 Uhr
Schau mal in der Tabellenstruktur, ob für "tech_old_rank" ein Defaultwert hinterlegt worden ist oder ein Pflichtfeld ist.


Grüße,
Dani
Bitte warten ..
Mitglied: Crimson
25.03.2010 um 13:33 Uhr
In dem Feld "tech_old_rank" ist kein Standart Wert hinterlegt und es ist nicht NULL, ich hab zwar schon zu Testzwecken bei allen Feldern einen Standartwert hinterlegt, dennoch gibt es weiterhin massive Probleme im Programm.
Bitte warten ..
Mitglied: Biber
25.03.2010 um 16:15 Uhr
Moin Crimson,

Zitat von Crimson:
In dem Feld "tech_old_rank" ist kein Standart Wert hinterlegt und es ist nicht NULL, ich hab zwar schon zu Testzwecken
bei allen Feldern einen Standartwert hinterlegt, dennoch gibt es weiterhin massive Probleme im Programm.

Ich fasse nochmal zusammen:
  • das Feld "tech_old_rank" ist als INTEGER definiert
  • das Feld "tech_old_rank" ist als NOT NULL definiert
  • das Feld "tech_old_rank" hat keinen Default
--> also würde es in die Grütze gehen, wenn du einen neuen Datensatz einfügt und das Feld "tech_old_rank" nicht explizit ansprichst/einfach nicht erwähnst.

Du gehst doch aber noch einen Schritt weiter: du versuchst doch ausdrücklich, dort einen Leerstring reinzudrücken

Das heißt, selbst wenn diese merkwürdige Syntax "INSERT INTO tabelle SET `feldA` = 'valueA',,feldB = 'valueB',...;", die ich noch nie gesehen habe, funktionieren würde: jedes nicht in total zerrütteten Verhältnissen aufgewachsene Datenbanksystem würde betreten zu Boden schauen, wenn du dann mit dem Ansinnen
...`tech_old_rank` = '', ...
...um die Ecke biegst. Also einen Stringwert in ein Integerfeld reinwürgen wolltest.
Dann setzt doch dort einen numerisch-Nullwert ein.
...`tech_old_rank` = '0', ....

Wenn dieser (erstere) Aufruf bisher keinen Fehler produziert hat, dann wurde dieser INSERT noch nie aufgerufen.

Poste doch mal wie von Dani angeregt die 3 laufenden Zentimeter Sourcecode, die dieses Statement zusammentrümmern.

Grüße
Biber
Bitte warten ..
Mitglied: Crimson
25.03.2010 um 16:23 Uhr
Der Sourcecode ist nicht von relevanz, ich hab in meinem erstem Post geschrieben das es unter Linux und auf meinem Lapptop einwandfrei funktioniert.
In diesen beiden Systemen wird dies automatisch mit 0 gefüllt.

Nur auf dem neuen Server nicht.
Entweder der Server kann damit nicht umgehen, warum auch immer denn die anderen können es, oder es ist eine fehlkonfiguration am Server.
Bitte warten ..
Mitglied: Biber
25.03.2010 um 16:31 Uhr
In der Fehlermeldung steht doch aber deutlich erkennbar, dass diesem Feld ein Stringwert ('') zugewiesen werden soll.
Wieso wäre es deiner Meinung nach zu erwarten, dass es "In diesen beiden Systemen .... automatisch mit 0 gefüllt." wird?

Das hieße doch, du kannst hier und heute genau dieses INSERT-Statement auf den "alten" installationen abfeuern und bekommst ohne Fehler einen neuen Satz angelegt, der auch (numerisch Null) in diesem Feld enthält?

Glaub ich nicht.
Biber
Bitte warten ..
Mitglied: Crimson
25.03.2010 um 16:41 Uhr
Warum ich das erwarte, ganz einfach weil es bei allen(!) Webspace Providern funktioniert hat, außer jetzt bei mir auf dem Server...
Bitte warten ..
Mitglied: Biber
25.03.2010 um 18:06 Uhr
Na gut.... wenn dieses Verhalten deinen Erwartungen entspricht, dann setze "global.sql_mode=TRADITIONAL;" oder "global.sql_mode='';".
vgl Der SQL-Modus des Servers (mySql 5.1) --> SET sql_mode = '';

Dennoch ist mir die Herleitung deiner Erwartungshaltung vollkommen suspekt - wenn mir eine neu installierte Server-Version zu Recht einen Fehler anmeckert, der in der alten Version jahrelang nicht aufgefallen ist, dann würde ich doch sagen: "Hey, wieso war die alte Version zu dämlich, das zu merken?"
Bitte warten ..
Mitglied: Crimson
29.03.2010 um 20:05 Uhr
Entschuldigung für meine lange Antwortzeit, aber schon mal vielen dank für deine Hilfe.

PS: Ich werde versuchen die Fehler zu beseitigen.

LG
Crimson
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Datenbanken
gelöst Wordpress findet MySQL Server nicht (27)

Frage von 118080 zum Thema Datenbanken ...

Apache Server
gelöst Ubuntu Server - PHP lädt keine mysql extension (6)

Frage von harald.schmidt zum Thema Apache Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...