2017-01-06 8 views
0

を実行するときに、私はオンラインチュートリアルを以下だし、私は私のコードと私は、次のよコードで異なる何だ何が表示されないメッセージにMySQLの構文エラー例外更新クエリ

"MySQLSyntaxErrorExcetpion You have an error in your SQL syntax." 

を取得しています。誰かが間違っていたところを指摘できますか?

追加情報が必要な場合はお知らせください。

Screenshot

btn_update.addActionListener(new ActionListener(){ 


      @Override 
      public void actionPerformed(ActionEvent e) { 

       try{ 
        theQuery("update users set fname = '" + firstNameField.getText() + "', lname = '" + lastNameField.getText() +"', age=" + ageField.getText() + "where id = " + idField.getText()); 
       } 
       catch(Exception ex) 
       { 
        System.out.println(ex); 
        } 

      } 
     }); 
+2

「どこ」の前にスペース文字が欠けています – julienc

+4

必須コメント:このコードはSQLインジェクション攻撃に対して広く公開されています。代わりに 'PreparedStatement'の使用を検討してください。 – Mureinik

答えて

1

を動作するはず :

age=" + ageField.getText() + "where id = " + idField.getText()); 

をあなたはネイティブな方法の代わりにPreparedStatementを使用する

age= " + ageField.getText() + " where id = " + idField.getText()); 

Iのアドバイスにそれを変更する必要が

+0

私はとても近かった!笑次回は感謝の言葉をお試しください! – Andy

+0

幸運@Andy –

0

"どこのid =" の前にスペースを追加します。あなたがここにスペースを持っていないので、

0

toString()関数を使用して値を文字列に変換し、次のようにクエリに渡します。

firstNameField.getText().toString()