I’m trying to use a MySQL database to save player information, but whenever there is a duplicate it will load (or save?) every player from the same player column.
Here’s what I’m working with:
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;
}
Here are the schemas (I removed the data from the example as it’s not really needed, it doesn’t load/save properly regardless):
Player:
image http://puu.sh/Alit.png
Playerdata:
image http://puu.sh/Aljr.png
I’m aware they’ll be the same because I’m using the same string for the test field, but even if I do random ones or custom edit it in PHPMyAdmin it’ll still save and then load from the same column. I think that it’s saving because it seems to load the player properly, it’s just not updating the proper column, which I don’t know how to do. Inside the playerdata table all of the data for every single person is the same, and I don’t know what’s causing it, any ideas?
I have fixed this issue by changing the loading query to
SELECT * FROM player as p, playerdata as pd WHERE p.username = '" + name + "' AND pd.username = '" + name + "'