2016-09-01 4 views
0

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

')'行方不明の場合、例外を取得する必要がありますか? – Jens

+0

ありがとう、私は欠けている)。 –

答えて

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

「VALUES」の中にいくつかの終了括弧が必要なようです。

スタックトレースを出力するキャッチブロックは、ここで問題を教えてくれました。私は最高のSQLの男ではない、私はいつもthisを使用して私はすべての権利を終えたかどうかを再確認するために私のSQL構文をチェックしてください。

0

あなたの接続は自動コミットではないようです。 "stmts.executeUpdate();"の後に

stmts.commit(); 

の後に追加してください。

関連する問題