Use number_format para substituir o
,
com .
Assim:
number_format($value, 8, '.') // 8 = number of decimals, . = decimal separator
No entanto, seu problema parece estar relacionado à localidade atual. Você precisa verificar o seguinte:setlocale() e localeconv
setlocale(LC_ALL, 'en_US'); // NOT TESTED, read up on the appropriate syntax
Esta é a maneira apropriada de fazer isso, a alternativa seria (como sugerido abaixo), fazer um
str_replace(',', '.')
, mas você precisa fazer o inverso toda vez que quiser gerar strings. Há outra opção, porém, você pode definir a localidade do MySQL para
en_US
.