2016-09-01 148 views
0

當我去插入數值到數據庫(什麼都不做)時,我得到了問題。 在此之前,我做選擇表獲取最後的ID,它的工作。 這裏是我的代碼:插入數據庫mysql得到問題

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

在有'''的情況下,你應該得到一個異常?! – Jens

+0

謝謝,我錯過了)。 –

回答

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

看起來您需要在「VALUES」中加入一些圓括號。

打印堆棧跟蹤的catch塊也會告訴你這個問題。我不是最好的SQL人員,我總是用this來檢查我的SQL語法,並仔細檢查我是否做得正確。

0

您的連接似乎不是自動提交。嘗試添加「stmts.executeUpdate();」之後的

stmts.commit();