Столкнулся со странной проблемой:
У меня есть столбец «MaxDealtDamage», который, например, ниже 1000000 (1000 тыс.). код такой:
class xyz = PlayerData.GetData(player);
xyz.LoginTimes++;
PlayerData.SetData(xyz, player);
Когда это 1000000 (1000k) или выше, эта ошибка отправляется:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с '.000,
MaxDefense
= 0, ГДЕ UUID='d839d1f0-ad5b-4922-841c-1d6ee05d9f56'' в строке 1
Он ведет себя так, как будто пытается дать ему строку, содержащую «4.000.000», но это целое число со значением «4000000» (4000k). Чтобы убедиться, что вывод во время выполнения равен 4000000, я перепроверил его.
Здесь запрос:
MessageFormat.format("ВСТАВИТЬ В PlayerData(
UUID
,VIPExpirationDate
,IPv4
,FirstPlayTime
,LastPlayTime
,TotalPlayTime
,TotalLogins
,MaxDealtDamage
,MaxDefense
) " + "ЗНАЧЕНИЯ(''{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);