在我的java程序中,我正在改变每一行的每一列,并且它处于for循环中。因此,列名称随循环递增而更改。一旦对列进行了更改,我想在数据库中更新它。我已经写了更新查询,如下所示。
String query1="update test1.attendence set"+ colname +"= ? where id=?";
PreparedStatement pst=conn.prepareStatement(query1);
pst.setString(1, attchanged);
pst.setInt(2, rownum);
int result=pst.executeUpdate();
此处colname是一个包含列名称的变量。 attchanged是更改后的列值。 rownum是行的id属性
当我执行它时,我的语法错误。
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 '= null where id=2' at line 1
你能告诉我这里要写的正确语法吗?
答案 0 :(得分:2)
看起来您需要set
和colname
String query1="update test1.attendence set "+ colname +"= ? where id=?";
PreparedStatement pst=conn.prepareStatement(query1);
pst.setString(1, attchanged);
pst.setInt(2, rownum);
int result=pst.executeUpdate();
确保colname
经过严格的输入验证或使用超级安全,因此您不要打开自己的sql注射
答案 1 :(得分:0)
您的attchanged
似乎是null
。我会使用调试器来查找错误。
答案 2 :(得分:0)
尝试使用正确的格式。 String query1 =(“update test1.attendence set =?where ...”);