问题描述
异常:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'database='88'whereid='1001''atline1代码:mystatement.executeUpdate("updatestudentsetmath='"+math+"',english='"+english+"',computer='"+computer+"',database='"+database+"'"+"whereid='"+ID+"'");
解决方案
解决方案二:
第一:你的sql有语法错误,用下面的方法,打印出来仔细检查你的sqlStringsql="updatestudentsetmath='"+math+"',english='"+english+"',computer='"+computer+"',database='"+database+"'"+"whereid='"+ID+"'";System.out.println(sql);
这种方式很容易出错,而且不安全(SQL注入攻击和漏洞)第二:别用第一种拼接字符串的方式执行sql,很容易出错,改用PreparedStatment来操作吧。假设database字段是int类型,id是varchar类型//.....PreparedStatementstmt=null;stmt=con.prepareStatement("UPDATEstudentSETdatabase=?WHEREid=?");stmt.setInt(1,100));//设置database的值为100,将第一个?设置为100stmt.setString(2,"1001");//设置whereid="1001",将第二个?设置为"1001"intc=stmt.executeUpdate();//执行更新//.....
解决方案三:
关于PreparedStatement如何使用的例子,我搜索了一篇CSDN的blog,你可以学习一下,别再用你的那种方法了。猛戳---