Bukkit MySQL 语法错误

Bukkit MySQL syntax error

我收到以下语法错误

这里是sqltable结构 http://puu.sh/jqPcK/f53bac000a.png

[18:48:42 WARN]: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'in = 0, Unbanned by = 'Crypted', Banned on = 'Ban Removed', Reason = 'dog unb ',' at line 1

这是我的部分代码

                 PreparedStatement revoke = sql.c.prepareStatement("UPDATE `bans` SET Name = ?, Expires in = ?, Unbanned by = ?, Banned on = ?, Reason = ?, Banned = ? WHERE UUID = ? ");

                 if ( args[0].equalsIgnoreCase("revoke") )
                 {

                     revoke.setString(1, off.getName());
                     revoke.setInt(2, 0);
                     revoke.setString(3, sender.getName());
                     revoke.setString(4, "Ban Removed");
                     revoke.setString(5, message);
                     revoke.setInt(6, 0);
                     revoke.setString(7, off.getUniqueId().toString());

Expires in 被读取为两个标记。通常你的数据库字段会这样命名:expires_in 这样就不会发生这个问题。以后不要在字段名称中使用空格。

在这种情况下,您可以更改声明并用反引号将名称括起来以表示它们是单个标记。

UPDATE `bans` SET Name = ?, `Expires in` = ?, `Unbanned by` = ?, `Banned on` = ?, Reason = ?, Banned = ? WHERE UUID = ?