сложение дробных чисел mysql

FD
На сайте с 12.05.2017
Offline
71
365

Ребят подскажите. Складываю дробные числа, результат записывается в базу целым числом округляя до целого:

Тип данных - varchar

 public function balance_change($type, $amount) {
if ($type == 'in') {
DB::query('
UPDATE users,
(SELECT BonusBalance AS bal_before
FROM users
WHERE UserID = %i) AS tbl
SET `BonusBalance` = tbl.bal_before+%i
WHERE `UserID` = %i', $this->id, $amount, $this->id);

return true;
}

return false;
}


---------- Добавлено 12.05.2020 в 19:42 ----------

c типом колонки decimal(6,2) аналогичная проблема
НАКРУТКА INSTAGRAM (https://instagram777.ru) - Смешные цены!
IL
На сайте с 20.04.2007
Offline
435
#1
FrancisDarroze:
c типом колонки decimal(6,2) аналогичная проблема

1) Про тип какой именно колонки речь?

2) что в $amount (прям внутри функции)

3) что такое DB::query и почему там %i ?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
LEOnidUKG
На сайте с 25.11.2006
Offline
1740
#2

В чём собственно проблема я тоже не понял.

Я конечно могу предположить, что в mysql и в передоверяемых данных запятая и точка спутаны.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
S
На сайте с 30.09.2016
Offline
469
#3

И нафига там SELECT?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
LEOnidUKG
На сайте с 25.11.2006
Offline
1740
#4
Sitealert:
И нафига там SELECT?

ну не знает разработчик, что mysql может столбцы складывать при update 🍿

T7
На сайте с 19.09.2018
Offline
63
#5
FrancisDarroze:
UserID = %i
ivan-lev:
что такое DB::query и почему там %i ?

Рискну предположить, что то типа cпецификатора. Ну типа %d у sprintf(). Поэтому и int.

FrancisDarroze, посмотрите код public static function query() в классе DB и разберитесь с правилом формирования запроса.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий