I’m trying to update the values of a table, but it throws an error that I have not been able to determine. If you visualize it it would help me, this is what it throws by console:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘name=’Proyecto ‘ status=0 language=’PHP’ duration=16 advance=16 effec=0.0 where ‘ at line 1
x
public int actualizar(Proyecto p, int pos) {
String sql = "UPDATE proyecto SET code=? name=? status=? language=? duration=? advance=? effec=? where code='"+ pos +"' " ;
try {
con = conectar.getConexionSQL();
ps=con.prepareStatement(sql);
ps.setInt(1, p.getCod());
ps.setString(2, p.getNombre());
ps.setInt(3, p.getStatus());
ps.setString(4, "PHP");
ps.setInt(5, p.getDuracion());
ps.setInt(6, p.getAvance());
ps.setDouble(7, 0.0);
ps.executeUpdate();
return 1;
} catch(Exception e){
e.printStackTrace();
}
return 1;
}
Advertisement
Answer
Assignments in the SET
must be separated by commas:
UPDATE proyecto
SET code = ?, name = ?, status = ?, language = ?, duration = ?, advance = ?, effec=?
WHERE code = ?
Possibly unrelated note: do you really mean to update column code
, which you are using to identify which record(s) should be updated? Although this is valid SQL, this might not really make sense from functional perspective.