[SQL/PHP] Finde den Fehler einfach nicht

resoucer

Gesperrt
ID: 77379
L
20 April 2006
2.846
109
Hi, also ich habe ein Problem.

undzwar updatet mein PHP Script (phpmyadmin auch nicht !!) genau eine Spalte nicht.

Alle zeichen die länger als 9 Zeichen sind !

Tabellenaufba `users`
id int(10)
ktnr int(20)

PHP:
UPDATE `users` SET `ktnr` = '21474836471' WHERE `id` =17 LIMIT 1 ;
(' zu entfernen bringt keine Verbesserung)
id 17 findet er aber bei Select.
Nur Updatet er das nicht, ich habe kein Plan warum das so ist. Evtl. kann mir da einer helfen.

Wenn ich aber nur 2147483647 updaten will gehts ! Also irgendwie kommt er mit weiteren Stellen nicht zurecht
 
ktnr ist was für ein Typ? Sicherlich Zahl, oder?

EDIT: ach steht ja schon da
Schon mal nachgeguckt, wie groß INT maximal sein darf? :roll:

EDIT 2: Und außerdem ist bei der Speicherung durch 'text' eine Textspeicherung möglich und Text ist keine Zahl.
 
ktnr ist was für ein Typ? Sicherlich Zahl, oder?

EDIT: ach steht ja schon da
Schon mal nachgeguckt, wie groß INT maximal sein darf? :roll:

EDIT 2: Und außerdem ist bei der Speicherung durch 'text' eine Textspeicherung möglich und Text ist keine Zahl.

zu EDIT 1: Auch INT(11) bringt den selben fehler (hatte ich vorher)
zu EDIT 2: Selbe Fehler kommt auch wenn ich keine ' Zeichen setzte.
PS: Mit Varchar testweise probiert, da klappt es.
 
Du versuchst eine Spalte vom Typ INT mit einer Stringkonstanten zu setzen. Das ist etwas was man nicht tun sollte. Aber MySQL ist da ja nicht so, es versucht den String in einen Integer umzuwandeln. Das funktioniert natürlich nur, wenn der String in einen Integer passt. Und INT ist 31 Bit + Vorzeichen, damit ist die höchste Zahl die geht 2147483647.

Die Diskussion Kontonummer / Int hatten wir übrigens gerade erst: *klick*.


*edit* Zu Deinem edit: die (11) bei INT hat nichts mit der Größe ansich zu tun. Für nen größeren Int musst Du schon BIGINT nehmen. Oder char halt.