villiwalla
@villiwalla
HTML-верстка

Почему не получается записать float в БД?

Приходит строка с 7,9 из input[type=number], в php убирается запятая на точку и приводится к float. Потом отправляется в БД. В результате в БД(колонка в таблице FLOAT) запись данного значения как "целое число" т.е просто 7 а не 7.9; Почему так может происходит? var_dump до отправки в запрос в БД показывает что отправятся float; Если через консоль INSERT с добрым числом отправляю то в БД все ок.

// Привидение к нужному типу str->float
    public static function replacedComma($str) {
        $pattern = ',';
        $replaced = '.';

        $result = str_replace($pattern,$replaced,$str) + 0;

        return $result; //float
    }

// Запись в БД
......
        $stmt = $db->prepare('INSERT INTO employee_hours(employee_id,hours,status_id,date_time,note)
                              VALUES(?, ?, ?, FROM_UNIXTIME(?), ?)');

        $hour = self::replacedComma(trim($hours));

        $stmt->bind_param('iiiss',$id,$hour,$status,$timestamp,htmlentities(trim($note)));
......
  • Вопрос задан
  • 207 просмотров
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В идеале, если знаете количество знаков после запятой лучше использовать decimal.

и вот почитать по теме
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы