Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果播放器没有';我还没有宝石 来自_Java_Mysql - Fatal编程技术网

Java 如果播放器没有';我还没有宝石 来自

Java 如果播放器没有';我还没有宝石 来自,java,mysql,Java,Mysql,这是我当前的代码,我尝试执行检查,看看他们是否有任何令牌,然后设置令牌,如果他们没有,但它似乎只是在运行代码,无论我是否设置它 @EventHandler public void onJoin(PlayerJoinEvent event) throws SQLException { Player player = event.getPlayer(); String name = player.getName(); Statement statement = connect

这是我当前的代码,我尝试执行检查,看看他们是否有任何令牌,然后设置令牌,如果他们没有,但它似乎只是在运行代码,无论我是否设置它

@EventHandler
public void onJoin(PlayerJoinEvent event) throws SQLException {
    Player player = event.getPlayer();
    String name = player.getName();
    Statement statement = connection.createStatement();
    ResultSet res = statement.executeQuery("SELECT * FROM tokens WHERE PlayerName = '" + name + "';");
    res.next();

    int tokens = 0;

    if (res.getString("PlayerName") == null) {
        Statement statement = connection.createStatement();
        statement.executeUpdate("INSERT INTO tokens (`PlayerName`, `tokens`) VALUES ('" + name + "', '0');");

        tokens = 1000;
    } else {
        tokens = res.getInt("tokens");
    }

    player.sendMessage(tokens + " Tokens.");
} 

检查行是否存在的方式是错误的。请查看您的查询:

"SELECT * FROM tokens WHERE PlayerName = '" + name + "'
如果表中不存在播放机,此查询将返回0行,而不是播放机名称为
null
的行,就像您现在检查的那样。相反,您应该检查
ResultSet
是否有一行:

ResultSet res = statement.executeQuery("SELECT * FROM tokens WHERE PlayerName = '" + name + "';");

int tokens = 0;

if (res.next()) {
    Statement statement = connection.createStatement();
    statement.executeUpdate("INSERT INTO tokens (`PlayerName`, `tokens`) VALUES ('" + name + "', '0');");

    tokens = 1000;
} else {
    tokens = res.getInt("tokens");
}
在做任何事情之前,首先要解决的是——停止将您的值直接放入SQL。使用参数化SQL。看见