我正在尝试检查数据库中是否已经存在玩家名称和受邀玩家名称,我尝试以下操作:
public boolean isFriends(ProxiedPlayer inviter, ProxiedPlayer invited) {
try {
Statement sql = mySql.getConnection().createStatement();
ResultSet resultSet = sql.executeQuery("SELECT * FROM `friends` WHERE `friendinviter`='" + inviter.getName() + "'`invitedfriend`='" + invited + "';");
ProxyServer.getInstance().broadcast("1");
if(resultSet.next()) {
sql.close();
resultSet.close();
return true;
}
sql.close();
resultSet.close();
return false;
}catch (SQLException e) {
e.printStackTrace();
return false;
}
}
我试着通过在结果集中得到它返回的结果来调试它,但是代码从来没有出现过。
2条答案
按热度按时间n8ghc7c11#
我的第一个建议是你应该使用
PreparedStatement
对于这部分代码。排在第二位
"SELECT * FROM friends WHERE friendinviter='" + inviter.getName() + "'invitedfriend='" + invited + "';"
部分"'invitedfriend='" + invited
我认为需要将varchar作为参数传递,但您传递的是ProxiedPlayer
. 因此,正确的代码应该是:pgky5nke2#
语法错误:
你错过了where线索中的逻辑运算符。
你应该学习准备好的陈述。