java - 使用Java的SQL语法错误

标签 java sql

public boolean setgame(int botid, int gameid, String name, String ip, int spoofed, int reserved, int loadingtime, int left, String leftreason, int team, int colour, String spoofedrealm) {
    try {
        Connection connection = connection();
        PreparedStatement statement = connection.prepareStatement("INSERT INTO gameplayers (id, botid, gameid, name, ip, spoofed, reserved, loadingtime, left, leftreason, team, colour, spoofedrealm) VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        statement.setInt(1, botid);
        statement.setInt(2, gameid);
        statement.setString(3, name);
        statement.setString(4, ip);
        statement.setInt(5, spoofed);
        statement.setInt(6, reserved);
        statement.setInt(7, loadingtime);
        statement.setInt(8, left);
        statement.setString(9, leftreason);
        statement.setInt(10, team);
        statement.setInt(11, colour);
        statement.setString(12, spoofedrealm);
        statement.execute();
        connectionReady(connection);
        return true;
    } catch (SQLException e) {
        if (Main.DEBUG) {
        }
        Main.println("[SQLThread] Unable to add bot ban to MySQL database: " + e.getLocalizedMessage());
    }
    return false;
}
<小时/>

我创建了一个 main 方法来添加所有数据,但在 insert 语句中看不到任何错误。

我收到此错误:

[SQLThread] Fail: 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 'left, leftreason, team, colour, spoofedrealm) VALUES (NULL, 2, 146, 'Teste', '120.32' at line 1

最佳答案

LEFTreserved word in MySql (如LEFT OUTER JOIN...)。您需要在其周围使用引号才能将其用作标识符。

更好的是,考虑重命名该字段以不使用保留字作为标识符。

关于java - 使用Java的SQL语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103314/

相关文章:

c++ - Qt 程序意外结束

python - 根据数据帧 VLookup 样式中的列合并两个 Excel 文件

如果未找到所有值,MySQL INNER JOIN 将返回零结果

SQL 查询包含 IF/ELSE 语句

php - PDO准备语句将NULL值插入mysql数据库

java - 尝试在 android 中构建一个简单的通知

尝试使 Tableview 可点击时出现 JavaFX 错误

java - 何时应该使用 Hashtable 与 HashMap

java - 如何抑制 `var` 关键字上的此警告?

java - 打印字节时的内存