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
すべての個人のすべてのデータが同じであり、何が原因なのかわかりません。アイデアはありますか?