Der-Dennis: PHP / PDO / MySQL: Beim Datentyp float wird ein Komma statt eine

Beitrag lesen

Wir haben das Problem soweit behoben.

In dem Projekt wurde in einer Datei

  
<?php  
setlocale(LC_ALL, array('de_DE.UTF-8', 'deu_deu.65001'));  

aufgerufen, was anscheinend das Problem auslöst. Eine Änderung auf

  
<?php  
setlocale(LC_ALL, 'en_US.UTF-8');  

brachte keinen Erfolg, dafür aber die Änderung auf

  
<?php  
setlocale(LC_ALL, 'en_US.8859-1');  

Warum auch immer das der Fall ist.

Insgesamt ist es nun so, dass der Großteil der Server die setlocale()-Deklaration einfach ignoriert, was bei unseren vorherigen Servern wohl auch der Fall war. Höchstwahrscheinlich sind bestimmte Server- oder php.ini-Einstellungen dafür verantwortlich, die wir aber noch nicht näher bestimmen konnten. Hat jemand eine Idee hierzu?

Deshalb konnten wir das Problem auch so schlecht finden. Wie gesagt, vorher lief alles super, erst beim Umzug fiel das Problem auf. Denn eigentlich übernimmt unsere View die Aufgabe, die Ausgabe bezüglich der länderspezifischen Einstellungen zu ändern. Hier stand also im "Modus deutsch" immer ein Komma statt einem Punkt, obwohl PHP mit englischen Fließkommazahlen gerechnet hatte.

Eine große Frage bleibt jedoch noch im Raum: Warum sind die Locale-Einstellungen augenscheinlich das Problem, dass PHP mit diesen Werten nicht mehr rechnen kann? Warum werden diese bereits beim Auslesen aus der Datenbank genutzt und nicht erst, wenn Werte ausgegeben werden? Denn sollte sich dies bestätigen, wären sie doch vollkommener Unsinn. Warum sollte ich die Einstellungen benutzen, wenn ich die Werte zwischendurch wieder in das englische System übertragen muss, um sie anschließend wieder für die Ausgabe zu ändern!?

Wenn noch jemand Ideen hierzu hat, würde ich mich sehr freuen, von Euch zu hören.

Gruß, Dennis