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

FD
На сайте с 12.05.2017
Offline
59
315

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

Тип данных - 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
412
#1
FrancisDarroze:
c типом колонки decimal(6,2) аналогичная проблема

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

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

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

LEOnidUKG
На сайте с 25.11.2006
Offline
1554
#2

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

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

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
S
На сайте с 30.09.2016
Offline
459
#3

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

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

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

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

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

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

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