我试图在执行此方法时向特定用户添加一个值,称为chests

public void addAmm(Player player, int amount, DataType type) {
    try {
        Statement sql = mySql.getConnection().createStatement();
        sql.executeUpdate("UPDATE `playerinfo` SET `chests`= '" + amount + "' + 'chests' WHERE Username='" + player.getName() + "';");
        sql.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

它给了我这个错误:
[12:26:14警告]:com.mysql.jdbc.mysql Data truncation:数据截断:截断
不正确的双精度值:“chests”

最佳答案

假设amount5并且player.getName()Paul。你得到的是:

"UPDATE `playerinfo` SET `chests`= '5' + 'chests' WHERE Username='Paul';"

所以你把'5' + 'chests'赋给`chests`。如果此列是double类型,则必须转换(截断)分配的值。
也许你更想要以下的东西:
"UPDATE `playerinfo` SET `chests`= '5' + `chests` WHERE Username='Paul';"


"UPDATE `playerinfo` SET `chests`= '" + amount
                  + "' + `chests` WHERE Username='" + player.getName() + "';"

这会将amount添加到player`chests`的columnPaul值中。

关于java - MySQL错误-不正确的DOUBLE值:“chests”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29876512/

10-10 19:43