我正在尝试使用 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;
}
这是模式(我从示例中删除了数据,因为它并不是真正需要的,无论如何它都不能正确加载/保存):
播放器: 图片 http://puu.sh/Alit.png
玩家数据: 图片 http://puu.sh/Aljr.png
我知道它们将是相同的,因为我对该test
字段使用相同的字符串,但即使我在 PHPMyAdmin 中进行随机字符串或自定义编辑,它仍然会保存然后从同一列加载。我认为它正在保存,因为它似乎正确加载了播放器,它只是没有更新正确的列,我不知道该怎么做。在playerdata
表格中,每个人的所有数据都是相同的,我不知道是什么原因造成的,有什么想法吗?