@slava_pv

Как записать float число в БД (MySQL)?

Есть json

$data = {"type": "bet_event", "is_win": false, "success": true, "win_coef": 3.2667, "bet_index": 2, "win_games": 0, "bet_amount": 0.0000001, "win_amount": 0, "win_profit": 0, "bets_amount": 0.0000005, "session_time": 180}


Мне нужно записать "bet_amount" в таблицу БД в том виде, в котором оно приходит.
Пишу так и в БД получаю 0.00.

DB::table('classic_dice')->insert(

            [
                [
                    'user_id' => session()->get('user_id'),
                    'bet' => $data['bet_amount']
                ],
            ]

        );


Тип столбца в БД - float.
Как записать в том виде, как приходит (7 знаков после запятой)?
  • Вопрос задан
  • 1582 просмотра
Решения вопроса 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
1) Изучить, какие есть типы данных в mysql. (можно тут: https://metanit.com/sql/mysql/2.3.php и тут: https://phpclub.ru/mysql/doc/column-types.html)
2) Посмотреть какой тип у вас используется для поля bet_amount
3) Исправить схему бд.

Скорее всего, у вас стоит DECIMAL(5,2) или что-то в этом духе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@AVKor
Тип столбца в БД - float.

Если это деньги (судя по названию, это так), то выбор типа столбца - неправильный.
Ответ написан
Комментировать
RomaZveR
@RomaZveR
CEO AlertMoney, PHP/Golang Developer
Что же это за валюта с семью знаками после запятой? Беда у вас будет с округлениями.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы