2016-03-30 5 views
1

Ich versuche, den Code auszuführen, aber ich bekomme weiterhin einen Fehler. Was könnte das Problem sein? Der Fehler ist: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe von 'Schlüssel' VALUES ('davis', '0704254498', '0704254498', jetzt() Ich hoffe, du hattest einen schönen Tag '' at line 1Fehler beim Einfügen von Daten in eine Datenbanktabelle com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException in Java

String sql = "INSERT INTO tWebServiceSms(username,mobile,sender_id,time_sent,message_payload,status,key) VALUES(?,?,?,now(),?,?,?)"; 
    PreparedStatement stmt = null; 
    try { 
     stmt = conn.prepareStatement(sql); 
     stmt.setString(1, webServiceSmsOut.getUsername()); 
     stmt.setString(2, webServiceSmsOut.getMobile()); 
     stmt.setString(3, webServiceSmsOut.getSenderId()); 
     stmt.setString(4, webServiceSmsOut.getMessage()); 
     stmt.setInt(5, 0); 
     stmt.setString(6, webServiceSmsOut.getKey()); 
     int affected = stmt.executeUpdate(); 
     return affected == 1; 
    } catch (SQLException e) { 
     Logger.getLogger(WebServiceSmsData.class.getName()).log(Level.SEVERE, "null", e); 
     return false; 
    } finally { 
     if (stmt != null) { 
      try { 
       stmt.close(); 
      } catch (SQLException ex) { 
       Logger.getLogger(WebServiceSmsData.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 
    } 

Antwort

1

Sie erhalten diesen Fehler, da key ein reserviertes Schlüsselwort in MySQL ist. Entweder den Namen ändern oder um Backticks es verwenden, `key`.

1

das Wort key ist ein reserviertes Wort in mysql, dass wird verwendet, um einen Index anzugeben.Wenn Sie ihn als Bezeichnernamen verwenden möchten, müssen Sie ihn mit Backticks (`)

einschließen
Verwandte Themen