[mysql] MySQLSyntaxErrorException

javama

Erfahrenes Mitglied
ich möchte eine Update machen, aber ich bekomme folgendes
Java:
com.mysql.jdbc.exceptions.jdbc4.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 'Alter = 11  WHERE Name ='rrr'' at line 1

meine abfrage sieht so aus
Java:
String query  = " UPDATE mitarbeiter set Alter = ? "+											 
												" WHERE Name ='"+m+"'";
hat jemand eine Idee wieso ich die Exception bekomme
 
Wie verarbeitest du im Java das '?'?
Was steht in m (nicht was sollte, sondern der Wert)

Prüf doch mal das genierte SQL direkt gegen die DB.
Das folgende Tutorial ist zwar für PHP, jedoch kann man das problemlos auch mit java so testen
PHP MySQL Debug Queries

Nachtrag:
Alter ist ein SQL-Befehl. Du musst den Feldnamen in `setzen um MySQL beizubringen, dass es kein SQL-BEfehl ist sondern ein Feldname. Dasselbe für name. Das ist auch so ein kritischer Feldname.
SQL:
UPDATE 
    mitarbeiter 
SET
    `Alter` = ?
WHERE
    `name` = ?;
 
Zuletzt bearbeitet von einem Moderator:
die verarbeitung
Java:
String query = " UPDATE mitarbeiter set Name =?, Vorname =?, Wohnort =?, Alter = ?, verheiratet=?, Status =? WHERE Name = ? ";

java.sql.PreparedStatement prepstmt = conn.prepareStatement(query);
prepstmt.setString(1, mitNeu.getName());
prepstmt.setString(2, mitNeu.getVorname());
prepstmt.setString(3, mitNeu.getWohnort());
prepstmt.setInt(4,mitNeu.getAlter());
prepstmt.setString(5, verheiratet);
prepstmt.setString(6, mitNeu.getStatus());
prepstmt.setString(7, m);
int result = prepstmt.executeUpdate();
das problem triit auf nur beim Alter****
hat das mit [int] zu tun?
 
Zuletzt bearbeitet:
Hast in dem Fall mein Nachtrag nicht gesehen....

Nachtrag:
Alter ist ein SQL-Befehl. Du musst den Feldnamen in `setzen um MySQL beizubringen, dass es kein SQL-BEfehl ist sondern ein Feldname. Dasselbe für name. Das ist auch so ein kritischer Feldname.
SQL:
UPDATE 
    mitarbeiter 
SET
    `Alter` = ?
WHERE
    `name` = ?;
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück