(Решено)Обновлять значение столбца Mysql

  • Автор темы Автор темы reZero
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

reZero

Активный участник
Пользователь
Баллы
76
Хочу сделать статистику для игрока (сколько раз он попадал в тюрьму), для этого мне нужно обновлять столбец, если игрок уже есть в таблице. Но вместо обновления столбца, игрок добавляется в таблицу снова и опять со значением 1.
Как я обновляю столбец
PHP:
PreparedStatement statement = sql.getConnection().prepareStatement("SELECT * FROM PlayerStatistic WHERE PlayerName=?");
            statement.setString(1, playername);
            ResultSet result = statement.executeQuery();
            result.next();
            PreparedStatement insert = sql.getConnection().prepareStatement("INSERT INTO PlayerStatistic (PlayerName, JailedCount) VALUES (?,?) ON DUPLICATE KEY UPDATE JailedCount='JailedCount'+1");
            insert.setString(1, playername);
            insert.setInt(2, 1);
            insert.executeUpdate();
 
Господи. Сделай уже тему: "Напишите мне пожалуйста тюрьму, а я её потом сам допишу".
 
Как то так

Код:
    @Override
    public void insert(String user, Long time) {
        try {
            PreparedStatement e = conn
                    .prepareStatement("INSERT INTO users (user,time) VALUES (?,?) ON DUPLICATE KEY UPDATE time = ?;");
            e.setString(1, user);
            e.setLong(2, time);
            e.setLong(3, time);
            e.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
Как то так

Код:
    @Override
    public void insert(String user, Long time) {
        try {
            PreparedStatement e = conn
                    .prepareStatement("INSERT INTO users (user,time) VALUES (?,?) ON DUPLICATE KEY UPDATE time = ?;");
            e.setString(1, user);
            e.setLong(2, time);
            e.setLong(3, time);
            e.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
PHP:
public void addPlayerJailedCount(String playername, int count)
{
        try
        {
            PreparedStatement insert = sql.getConnection().prepareStatement("INSERT INTO PlayerStatistic (PlayerName, JailedCount) VALUES (?,?) ON DUPLICATE KEY UPDATE JailedCount=?");
            insert.setString(1, playername);
            insert.setInt(2, count);
            insert.setInt(3, count+getPlayerJailedCount(playername));
            insert.executeUpdate();        
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
}
Делаю то же самое, никакого результата
upload_2018-12-11_19-28-0.png
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх