# Fehlermeldung beim Insert



## Val (15. Apr 2008)

hey Leute,
ich hoffe mal das ich hier richtig bin, bin zwar nicht so gut im Programmieren aber hoffe trotzdem das ihr mir weiterhelfen könnt. 
Also, es geht um eine Fehlermeldung die ich immer bekomme wenn ich meine daten von der selbst erstellten GUI auf die mysql datenbank einfügen will..
ich kann die daten laden, die schon in der DB vorhanden sind, versuche halt ein zusätzlichen eintrag einzufügen und bekomme ständig diese Meldung:


```
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1111 = Mitarbeiternummer' at line 1
```

finde leider keinen fehler, habe erst gedacht das es dran liegt das ich alle Strings bzw Varchars in einem " setzten muss, dies muss glaub ich auch, da es HeidiSQL oda so haben will...

naja ich lass das mal mit dem riesen text schreiben, vlt kann mir einer sagen wo der fehler liegen könnte...

wenn ihr mehr bzw andere infos braucht sagt bescheit pls, würde mich über eure hilfe freuen

MFG Val[/code]


----------



## ARadauer (15. Apr 2008)

bla bla bla wer ist heidi?

schick uns mal deine abrage bzw

meinst du schon dass Mitarbeiternummer eine 1111 ist und nicht
Mitarbeiternummer  = 1111


----------



## Verjigorm (15. Apr 2008)

dein SQL_Statement is falsch, aber das steht da ja eigentlich.
Hat nix mit Java an sich zutun


----------



## Gast (15. Apr 2008)

jo 1111 ist eine mitarbeiternummer, das ist so ne mitarbeiterverwaltungs dings ^^

1111 ist halt beim aller ersten Mitarbeiter, die mitarbeiternummer.
wenn ich einen 2ten einfügen will zb. mit der nummer 1112 zeigt er diese fehlermeldung an


----------



## Verjigorm (15. Apr 2008)

das ist aber verkehrtrum ..

1111 = Mitarbeiternummer  :autsch:

wir brauche mehr SQL


----------



## SlaterB (15. Apr 2008)

du posten SQL-Abfrage -> es gehen weiter,
sonst nicht


----------



## Val (15. Apr 2008)

so einmal die Insert

```
public String erzeugenInsertSQL(String mitarbeiterdb)
        {
    String sql = "Insert into "+mitarbeiterdb+" (Name,Vorname,Strasse,PLZ,Ort,Mitarbeiternummer,Abteilung,Gehalt,Kontonummer) Values ("+Name+","+Vorname+","+Strasse+","+Postleitzahl+","+Ort+","+Mitarbeiternummer+","+Abteilung+","+Gehalt+","+Kontonummer+")";
    return sql;
    }
```
 wolltet ihr die oder das halt mit dem speichern?


----------



## SlaterB (15. Apr 2008)

- poste vor allem den zusammengebauten String, wer weiß, was in deinen Variablen steht

- versuche erstmal eine kleine Testtabelle mit EINEM Attribut, nicht 10 komplizierte gleichzeitig

- die Fehlermeldung deutet meiner Meinung nach an. dass dein SQL '1111 = Mitarbeiternummer' enthält,
bist du sicher, dass diese Abfrage gemeint ist?

> wolltet ihr die oder das halt mit dem speichern?

das, wo der Fehler auftritt?!    :autsch:


----------



## ARadauer (15. Apr 2008)

so nebenbei, variablen schreibt man klein


----------



## Val (15. Apr 2008)

also ich habe so eine was ähnliches gebaut, das nur aus drei verschiedenen Variablen bestehnt, das funktionierte auch.

es könnte ja auch sein das der fehler an einem anderen platz enstehen könnte bin mir aber nicht sicher und zwar bei 

```
public void datenspeichernButtonActionPerformed(ActionEvent evt) {

   ResultSet rs;
    mitarbeiterDB.setmeineVerbindung("jdbc:mysql://localhost/mitarbeiterdb");  
    mitarbeiterDB.setBenutzername("****");
    mitarbeiterDB.setPasswort("****");
    mitarbeiterDB.setmeineTreiber("org.gjt.mm.mysql.Driver");
   try {
   if ( mitarbeiterDB.openConnection() ) {
    rs = mitarbeiterDB.leseDaten("SELECT * FROM mitarbeiterdb");
     for ( int i=0 ;i <=998  ; ++i  ) {
      if (meineMitarbeiter.vorhandenMitarbeiter(i)) {
       Mitarbeiter oMitarbeiter = meineMitarbeiter.aufrufen(i);
        boolean ok = true;
         while ( rs.next() & ok ) {
          if (oMitarbeiter.getMitarbeiternummer() == rs.getInt("Mitarbeiternummer")) {
           ok = mitarbeiterDB.schreibeDaten(oMitarbeiter.erzeugenUpdateSQL("mitarbeiterdb"));
            ok = false;
           }
         }
      rs.first();
        if (ok){
          ok = mitarbeiterDB.schreibeDaten(oMitarbeiter.erzeugenInsertSQL("mitarbeiterdb"));
        }
      }
    }
   }
   mitarbeiterDB.close();
  }
   catch (Exception e) {
   MeldungTextfield.setText(e.toString());
  }

 }
```

hmm vlt da drin n fehler?


----------



## SlaterB (15. Apr 2008)

erzeugenUpdateSQL klingt sehr verdächtig,

als aller erstes solltest du herausfinden, wo der Fehler auftritt,

setze z.B. vor jedem DB-Kommando eine Ausgabe a la
System.out.println("starte nun DB-Abfrage 27");
und dahinter
System.out.println("erfolgreich beendet: DB-Abfrage 27");

dann schaust du nach, welches die letzte 'start'-Ausgabe vor der Exception war


----------



## Val (15. Apr 2008)

hmm gute idee, werde ich mal versuchen, danke für die schnelle hilfe, schreibe später was zu wenn ich gefunden haben wodran es lag/liegt..

MFG Val


----------



## ARadauer (15. Apr 2008)

```
String sql = "Insert into "+mitarbeiterdb+" (Name,Vorname,Strasse,PLZ,Ort,Mitarbeiternummer,Abteilung,Gehalt,Kontonummer) Values ("+Name+","+Vorname+","+Strasse+","+Postleitzahl+","+Ort+","+Mitarbeiternummer+","+Abteilung+","+Gehalt+","+Kontonummer+")";
```
das liefert auf keinen Fall das


```
...corresponds to your MySQL server version for the right syntax to use near '1111 = Mitarbeiternummer' at line
```

such das UPDATE.. da liegt der fehler


----------



## Gast (15. Apr 2008)

ins UPDATE geht er ja nicht rein wenn die Mitarbeiternummer anders ist, desweg ja danach das INSERT


----------



## Val (22. Apr 2008)

okay leute bin mal bisschen weitergekommen, er zeigt mir die meldung nur an wenn ich im array schon daten drin habe die genau übereinstimmen mit denen in der DB, dazu müsste ich doch eig das speichern ändern oder?


----------



## SlaterB (22. Apr 2008)

niemand weiß, was in deinem Array ist, was in deiner DB ist, wie das zusammenhängt,
was du bisher unter 'speichern' verstehst und an Code hast (können verschiedene Dinge sein),
und ob und warum du etwas daran oder wo auch immer ändern musst,

mit einsilbigen Fragen gehts also nicht voran


----------



## Val (26. Apr 2008)

hat sich erledigt, alles läuft, thx für schnellen support...


----------

