<a href="-luan-381"></a> <a href=""></a> <a href="-couple-name-2347"></a> <a…
von:
VPNwelt.com sucht Feedback Wie der Name schon sagt handelt es sich um eine Review Website für…
von: florian.berg.privat
Ich habe ein Problem,
in einem Script, Posten geht aus Datenschutz leider nicht, kommt es zu einem Speicherfehler.
Auslöser ist Wahrscheinlich folgender Bug:
Blindflug::
Apache (fcgi) whatever ist zu dünn eingestellt.
Die übertragene Datenmenge ist grösser als erlaubt.
Der Speicher(Memory) ist zu klein.
Lass die Kontonummer als String
An der Zeichnlänge liegt es nicht, da diese begrenzt ist, und der Fehler ja nur sporadisch auftritt.
2147483647
Das ist das maximium eines signed Integers. Vermutlich versuchst du etwas zu speichern das größer ist als dieser Wert.
Dein Bugs beziehen sich auf die Content-Length, das ist etwas anderes und auch nur bei 32 Bit Systemen. Und ich glaub nicht das du POST Daten >2,1GB sendest!?
Ultima schrieb:
2147483647
Das ist das maximium eines signed Integers. Vermutlich versuchst du etwas zu speichern das größer ist als dieser Wert.
Kennt PHP keinen Datentyp long (64 bit Ganzzahl)?
Damit kann der OP Werte von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 speichern.
Servus,
Klaus
Ultima schrieb:
2147483647
Das ist das maximium eines signed Integers. Vermutlich versuchst du etwas zu speichern das größer ist als dieser Wert.
Hallo
Ich frage jetzt mal ganz blöde in den Raum.
Seid ihr sicher das es an PHP und nicht an Mysql liegt?
Gruß
Jörg
Ich bin auch von SQL aus gegangen, denn das verhalten ist Typisch für MySQL.
Und ja php kennt longs.
Wie gesagt, der Fehler tritt bei gleichen Eingabe zufällig auf,
gespeichert wird in eine MySQL DB. Kann da der Fehler sein ?
Es ist eine normale Kontonummer, und als String formatiert.
ALso mit leerzeichen < 2 Gb
Dann liegt der Fehler beim Speichern in der DB aber ohne ein Codebeispiel ist es schwer dir zu helfen.
Es gibt keine Zufälle, der Fehler kann auch durch ein vorhergehendes Feld ausgelöst werden, zB durch einen unescapten String.
Mach mal vor der Speicherung einen Typcast auf int oder long. Und im Query die Anführungszeichen weg lassen, vielleicht ist es ja ein Leerzeichen oder so das MySQL deine Zahl als String einlesen lässt. Das könnte der Grund für solche Ausgaben sein.
Ultima schrieb:
Mach mal vor der Speicherung einen Typcast auf int oder long. Und im Query die Anführungszeichen weg lassen, vielleicht ist es ja ein Leerzeichen oder so das MySQL deine Zahl als String einlesen lässt. Das könnte der Grund für solche Ausgaben sein.
Müsste es nicht andersherum sein? Er will einen String speichern, keine Zahl.
Für mich klingt das nach signed int, wo es char oder varchar sein sollte. Manche Kontonummern sind als Zahl zu groß, einige fangen u.U. mit einer 0 an...
Ich hatte selbiges Phänomen auf einem Projekt das einen Facebook-Login ermöglichte. Dabei wurde die tatsächliche "Facebook-uid" des Users durch deine genannte Zahl in die Datenbank gespeichert.
Mach aus dem Feld in der Datenbank von daher ein BIGINT statt ein INT !!! Das hatte dann mein Problem gelöst...
Beitrag erstellen
EinloggenKostenlos registrieren