Я столкнулся со странной проблемой:
У меня есть столбец "MaxDealtDamage", который, например, ниже, чем 1000000 (1000k).код выглядит так:
class xyz = PlayerData.GetData(player);
xyz.LoginTimes++;
PlayerData.SetData(xyz, player);
Когда это 1000000 (1000k) или выше, эта ошибка отправляется:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:У вас есть ошибка в вашем синтаксисе SQL;обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с '.000, MaxDefense
= 0 WHERE UUID =' d839d1f0-ad5b-4922-841c-1d6ee05d9f56 '' в строке 1
Он ведет себя так, будто пытается получить ему строку, содержащую «4.000.000», но это целое число со значением «4000000» (4000k).Чтобы быть уверенным, что выход во время выполнения равен 4000000, я дважды проверил его.
Здесь запрос:
MessageFormat.format ("INSERT INTO PlayerData (UUID
, VIPExpirationDate
, *)1020 *, FirstPlayTime
, LastPlayTime
, TotalPlayTime
, TotalLogins
, MaxDealtDamage
, MaxDefense
) "+" VALUES ('' {0} '', '' {1} '', ''{2} '', '' {3} '', '' {4} '', {5}, {6}, {7}, {8}); ", data.UUID.toString (), DBDateFormat.format (data.VIPExpirationDate), data.IPv4, DBDateFormat.format (data.FirstPlayTime), DBDateFormat.format (data.LastPlayTime), data.TotalPlayTime, data.TotalLogins, data.MaxDealtDamage, data.MaxDefense)