我正在尝试在执行此方法时向特定用户添加一个名为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'
答案 0 :(得分:1)
我们假设amount
为5
而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
添加到玩家`chests`
的列Paul
的值中。