Есть переменная $u[wood], в ней десятичное число например 5454655,8333333332333 Есть PHP запрос примерно такой: Код (Text): UPDATE users SET user_wood=$u[wood] Проблема в том, что php при получении десятичного числа ставить разделителем запятую и в итоге SQL ругается. Если вручную прописать Код (Text): UPDATE users SET user_wood=5454655.8333332333 то работает. Если же точку заменить на запятую, как формирует эту строку php, то последствия печальны. Неужто вручную разбивать число и собирать его заново типа Код (Text): echo $целая_часть, ".", $дробная часть Это жесть какая-то
ага, то есть у меня с руками все в порядке? Прокатило Код (Text): $u['wood'] = str_replace(',','.',$u['wood']); без (double)
есть и другие способы: - установить явно не русскую локаль (это труЪ решение) - преобразовывать число с плавающей запятой в строку через number_format($number, 2, '.', '') или sprintf('%F', $number) - при работе с базой использовать плейсхолдеры и правильно указывать тип переменной при биндинге
Ну конечно, в php динамическая типизация, по этому прокатило (откуда вы знаете, что там может прийти?), он сделал строгую то есть другой тип не придет никак. Тем-более у вас не double будет, а string=)