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 楼答案
你从未关闭过
VALUES (
你的最后一行应该是