【问题标题】:I'm trying to update the values ​of a table SQL have an error in Java我正在尝试更新表的值 SQL 在 Java 中有错误
【发布时间】:2020-04-24 23:13:24
【问题描述】:

我正在尝试更新表的值,但它会引发我无法确定的错误。如果您将其可视化,它将对我有所帮助,这就是控制台抛出的内容:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 'name='Proyecto ' status=0 language='PHP' duration=16 advance=16 effec=0.0 where ' at line 1 附近使用正确的语法

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;
    }

【问题讨论】:

    标签: java mysql sql sql-update


    【解决方案1】:

    SET 中的分配必须用逗号分隔:

    UPDATE proyecto 
    SET code = ?, name = ?, status = ?, language = ?, duration = ?, advance = ?, effec=?
    WHERE code = ?
    

    可能不相关的注释:您真的要更新列code,您使用它来确定应该更新哪些记录?虽然这是有效的 SQL,但从功能的角度来看,这可能没有真正意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      相关资源
      最近更新 更多