有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java MySQL语法错误不会消失

我是MySQL新手,我正试图在Java代码中实现它。我想做的是根据记录是否已经存在来调用一个方法,并更新/插入数据库表

现在,我查看了StackOverflow和Goggle,根据我的发现,我需要确保删除命令中值之间的空格,并且如果每个值的前缀和后缀都是一个'。然而,这似乎并没有解决问题。我仍然会收到一个错误,说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 '' at line 1

我不知道为什么会这样,因为我遵循了我在教程网站和论坛上看到的语法,但它似乎仍然不正确。我知道这不是我的主机的问题,因为我可以连接和查询它很容易。这是我的代码:

                if (!syncedPlayers.contains(player)) {
                worked = database.command("INSERT INTO " +
                        TABLE_NAME + " " + UUID_FIELD + "," + CAPTURE_FIELD + "," + FFA_FIELD + "," + GEANT_FIELD + "," + QUIZZ_FIELD + "," + SURVIE_FIELD +
                        " VALUES ('" + player.toString() + "','" +
                        getScores(CAPTURE_FIELD, player, field, amount) + "','" +
                        getScores(FFA_FIELD, player, field, amount) + "','" +
                        getScores(GEANT_FIELD, player, field, amount) + "','" +
                        getScores(QUIZZ_FIELD, player, field, amount) + "','" +
                        getScores(SURVIE_FIELD, player, field, amount) + "'");
            } else {
                worked = database.command(
                        "UPDATE " + TABLE_NAME +
                                " SET " + field + " = '" + getScores(field, player, field, amount) +
                                "' WHERE " + UUID_FIELD + " = '" + player.toString() + "'");
            }

每个getScores(<FIELD>, <UUID>, <FIELD2>, <INTEGER>总是返回一个整数值。所以你可以把它们想象成35s、123或0等等。我还使用了一个名为SpigotLib的SQL包装器,它简化了java SQL

我是SQL的新手,所以如果这个问题看起来这么简单,请不要生气


共 (1) 个答案

  1. # 1 楼答案

    你从未关闭过VALUES (

    你的最后一行应该是

    getScores(SURVIE_FIELD, player, field, amount) + "')");