mysql update funktioniert nicht richtig

Johannes7146

Goldschnabel
Java:
private boolean updateNode(Node node) {

		try {
			String sql = "UPDATE node SET title=? AND changed=? AND created=? AND status=? AND type=? AND uid=? AND vid=? WHERE nid=?";
			PreparedStatement ps = con.prepareStatement(sql);
			ps.setString(1, node.getTitle());
			ps.setLong(2, node.getChanged());
			ps.setLong(3, node.getCreated());
			ps.setInt(4, node.getStatus());
			ps.setString(5, node.getType());
			ps.setInt(6, node.getUid());
			ps.setInt(7, node.getVid());
			ps.setInt(8, node.getNid());
			ps.executeUpdate();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}

Ergebniss:
in der Spalte "title" wird überalle eine "0" eingetragen.
Alle anderen Spalten werden garnicht geändert.
 
Also ich würde statt den "AND"s Kommas nutzen und das PreparedStatement nahc dem UpdateCount befragen.
Bist du dir denn sicher, dass alle Werte in der node stehen?
 
Ja, in der Node steht alles richtig drin.
Aber der Hinweis mit dem AND durch Kommata ersetzen hat geholfen. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

vielen Dank!
 
Zuletzt bearbeitet:
Hi,

der Aufbau Deines Statements ist ja auch falsch. Ein UPDATE sieht so aus:

SQL:
UPDATE tabelle SET feld1 = number1, feld2 = 'string2', feld3 = ...

Und poste bitte im Datenbankforum keinen Quelltext irgendeiner Programmiersprache. Relevant ist hier ja immer nur das resultierende SQL-Statement und nicht jeder kann Java, PHP, VB,...

LG
 
Zuletzt bearbeitet:
Sorry, nicht dran gedacht.
Werde in nächste Zeit besser darauf achten, in welchem Forum ich Poste, bzw wie ich es dann ausdrücke.
Vielen Dank für eure Hilfe, nun funktioniert alles.
Danke.
 
Zurück