gpt4 book ai didi

java - 具有重复支持的 MySQL INSERT

转载 作者:行者123 更新时间:2023-11-30 23:30:27 26 4
gpt4 key购买 nike

我正在尝试使用 MySQL 数据库来保存玩家信息,但只要有重复项,它就会加载(或保存?)同一玩家列中的每个玩家。

这是我正在使用的:

public boolean saveGame(String playerName, String playerPass) {
String player = "'" + playerName + "', '" + playerPass + "'";
String player2 = "`password` = '" + playerPass + "'";

String playerData = "'" + playerName + "', 'testtttt'";
String playerData2 = "`test` = 'testtttt'";

Server.getConnectionPool().executeUpdate("INSERT INTO player (username, password) VALUES (" + player + ") ON duplicate KEY UPDATE " + player2);
Server.getConnectionPool().executeUpdate("INSERT INTO playerdata (username, test) VALUES (" + playerData + ") ON duplicate KEY UPDATE " + playerData2);
return true;
}

public int loadGame(String name, String pass) {
ResultSet res = Server.getConnectionPool().executeQuery("SELECT * FROM player, playerdata WHERE player.username = '" + name + "'");
try {
name = res.getString("username");
if (!pass.equalsIgnoreCase(res.getString("password"))) {
return 3;
}
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}

这是模式(我从示例中删除了数据,因为它不是真正需要的,无论如何它都不会正确加载/保存):

玩家: image http://puu.sh/Alit.png

玩家数据: image http://puu.sh/Aljr.png

我知道它们是相同的,因为我在 test 字段中使用了相同的字符串,但即使我随机生成或在 PHPMyAdmin 中自定义编辑它,它仍然会保存然后从同一列加载。我认为它正在保存,因为它似乎正确地加载了播放器,它只是没有更新正确的列,我不知道该怎么做。在 playerdata 表中,每个人的所有数据都是相同的,我不知道是什么原因造成的,有什么想法吗?

最佳答案

我通过将加载查询更改为 SELECT * FROM player as p, playerdata as pd WHERE p.username = '"+ name + "' AND pd.username = '"+ name + "解决了这个问题'

关于java - 具有重复支持的 MySQL INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10989109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com