MySQL错误 - 不正确的DOUBLE值:'chests'

时间:2015-04-26 10:33:12

标签: java mysql sql

我正在尝试在执行此方法时向特定用户添加一个名为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 WARN]:com.mysql.jdbc.MysqlDataTruncation:数据截断:截断
  错误的DOUBLE值:'chests'

1 个答案:

答案 0 :(得分:1)

我们假设amount5player.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添加到玩家`chests`的列Paul的值中。