# SQL Command ist falsch



## Funkeyfreak (27. Okt 2019)

Hey,

Ich habe das Problem dass mein SQL Code falsch sein soll, ich aber nicht weiß wie ich das beheben soll.  
Ich denke dass das Problem bei der Variable "String artikelname" ist, da in sql der Artikelname in Anführungszeichen gesetzt werden muss, dies hier aber nicht passiert.

-> String query = "insert into warenliste (Artikel_ID, Artikelname, Anzahl, Hochfrequent) values ("+arikel_ID+", "+artikelname+", "+anzahl+", "+hochfrequent+")"

Da ich aber den Artikelname vom GUI beziehe, d.h. durch eine Java Variable, kann ich diese nicht in Anführungszeichen setzen da ansonsten die Variable nicht benutzt wird oder?

Über Hilfe würde ich mich sehr freuen!!!

ganzer Code:

    public void setWareHinzu(int arikel_ID, String artikelname, int anzahl, boolean hochfrequent) {

            try {
                String query = "insert into warenliste (Artikel_ID, Artikelname, Anzahl, Hochfrequent) values ("+arikel_ID+", "+artikelname+", "+anzahl+", "+hochfrequent+")";
                st.executeUpdate(query);

            }
            catch(Exception e) {
                System.out.println(e);
            }

        }


----------



## mihe7 (27. Okt 2019)

Grundregel: baue niemals Parameter in eine SQL-Abfrage per Konkatenation ein. 


```
String sql = "INSERT INTO warenliste (Artikel_ID, Artikelname, Anzahl, Hochfrequent) VALUES (?, ?, ?, ?)";
try(PreparedStatement stmt = conn.prepareStatement(sql)) {
    stmt.setInt(1, arikel_ID);
    stmt.setString(2, artikelname);
    stmt.setInt(3, anzahl);
    stmt.setBoolean(4, hochfrequent);
    stmt.executeUpdate();
}
```


----------

