• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

PHP: string 000 wird als 0 in DB gespeichert

nietaL

NGBler

Registriert
8 Sep. 2013
Beiträge
231
Ort
Exilgullianer
Hey Leute,

einen String, den ich vorher mit $var = '000'; definiert habe, möchte ich anschließend in eine Datenbank speichern. Das klappt in sofern, als dass er es zwar speichert aber mir zu mathematisch denkt. Geschrieben wird nämlich einfach nur 0. Dasselbe natürlich auch bei '001' oder '010'.

Interessanterweise wird beim Auslesen der Datenbank dann aber wiederum 000, 001 und 010 ausgelesen, denn dieses Codes sind letztendlich Namen von Bildern, die problemlos angezeigt werden. Erwartet habe ich aber eine Fehlermeldung, dass es ein Bild mit dem Namen 0.jpg nicht gibt. (kein Cache)

Mir scheint es, als sei es eine Art Anzeige-Option von phpmyadmin, ála 010=10; 001 = 1 usw... Kann das sein? :dozey:
 

virtus

Gehasst

Registriert
24 Apr. 2015
Beiträge
1.689
Ort
AUF DEM MOND
Irgendwo werden die Variablen nicht als String, sondern als Integer (-artig) interpretiert.
Entweder hast du das im DB-Schema zu verantworten oder die dynamische Typisierung von PHP bereitet dir Probleme.
 

nietaL

NGBler

Registriert
8 Sep. 2013
Beiträge
231
Ort
Exilgullianer
  • Thread Starter Thread Starter
  • #3
Ohne Mist. Ich komm mir vor, wie, wenn meine Mutter das Internet gelöscht hat. Ich habe NICHTS gemacht und plötzlich stehen die Strings wieder dreistellig drin .... :eek: Das Mit den Integern hatte ich ja auch vermutet. Aber $string = "000" kann doch kein Integer sein, oder?
 

nietaL

NGBler

Registriert
8 Sep. 2013
Beiträge
231
Ort
Exilgullianer
  • Thread Starter Thread Starter
  • #5
Dynamische Typisierung? Nun gut, ich werde das 'mal noch weiter Beobachten. Vielleicht kann ich erkennen, an welcher Stelle aus 000 0 wird. Danke soweit erstmal.
 

keksautomat

Neu angemeldet

Registriert
15 Juli 2013
Beiträge
471
Evtl. beim Insert, wo du die Query hoffentlich mit PDO zusammendrückst (und Bind), das du es nochmal durch strval($value) drückst.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Naja, übliche Stellen für derartige Konvertierungen von Variablen sind zum Beispiel Berechnungen aller Art, also wenn du zum Beispiel nen String "hochzählen" lassen willst um den Dateinamen zu erhöhen und diesen Wert zuweist.

Oder vielleicht statt eines "." ein "+" irgendwo hast um Strings zu verketten (falls das in PHP möglich ist).

Oder du hast das Problem das du in der Datenbank einen "Int" wert vorgegeben hast, aber den String "004" übergibst - der dann von der Datenbank, wie schon gesagt wurde, in "4" umgewandelt wird - also zum Integer anstelle eines String-Werts, in Mysql zum Beispiel Text/Tinytext/Varchar oder ähnlichem im Gegenzug zu Int werten wie Decima, Integer oder einer Fließkommazahl wie Float/Double.
 
Zuletzt bearbeitet:
Oben