2016-09-01 1 views
0

У меня проблема, когда я перехожу в значение Insert в DB (ничего не делать). до этого я делаю выбор таблицы, чтобы получить последний id, и это сработало. Вот мой код:Вставить базу данных mysql get issue

IDBManager dbManager = getParentExtension().getParentZone().getDBManager(); 
    Connection connection = null; 

    int idRoom = params.getInt("idRoom"); 
    String betsmall = params.getUtfString("betsmall"); 
    int Uid = params.getInt("recid"); 

    try{ 
     connection = dbManager.getConnection(); 
     PreparedStatement stmt = connection.prepareStatement("SELECT id_game from detail_game ORDER BY id_game DESC LIMIT 1"); 

     ResultSet res = stmt.executeQuery(); 
     if (!res.first()) 
     { 
      trace("bla bla"); 
     } 

     int id = res.getInt("id_game"); 
     trace (id); 
    // **till here there is no problem, i can get id from select query 

     PreparedStatement stmts = connection.prepareStatement("INSERT INTO detil_bet (id_user, id_room, id_bet, bettype) VALUES (?, ?, ?, ? "); 
     stmts.setInt(1, Uid); 
     stmts.setInt(2, idRoom); 
     stmts.setInt(3, id); 
     stmts.setString(4, betsmall); 
     stmts.executeUpdate(); 

    } 
} 

Вот проблема, вставка не делать ничего.

+2

Вы потеряли ')' в части значений. –

+1

В случае, если есть ')' missing, вы должны получить исключение ?! – Jens

+0

спасибо, я пропустил a). –

ответ

1
PreparedStatement stmts = connection.prepareStatement("INSERT INTO detil_bet (id_user, id_room, id_bet, bettype) VALUES (?, ?, ?, ? "); 

Похоже, что вам нужны концевые круглые скобки в «ЦЕННОСТЯХ».

Блок catch для печати трассировки стека также сказал бы вам о проблеме здесь. Я не лучший парень SQL, я всегда использую this, чтобы проверить синтаксис SQL, а также дважды проверить, правильно ли я сделал все правильно.

0

ваше сообщение похоже не авто совершение. Попробуйте добавить

stmts.commit(); 

после слова "stmts.executeUpdate();".

Смежные вопросы