JSP修改密码代码有问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:47:52
<%
request.setCharacterEncoding("gbk");
String username = request.getParameter("username");//从上个页面调入的用户名
String pswd = request.getParameter("password");//旧密码
String pswd1 = request.getParameter("newpassword");//新密码
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/bbs?&useUnicode=true&characterEncoding=GBK&user=root&password=root";
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
String sub = "update login set password=='" + pswd1 + "' where username='" + username + "' and password='" + pswd + "'";
stmt.executeUpdate(sub);
stmt.close();
conn.close();
%>

提示stmt.executeUpdate(sub);出错

哪里有问题呀????

String sub = "update login set password='" + pswd1 + "' where username='" + username + "' and password='" + pswd + "'";

其实在 where语句中,where可以不写, 因为通常用户名都是唯一的, 而并不像楼上说的因为password是set的对象就不可以做条件了。

你的update语句中多了个等号, 如果不是你提问时写错了,那错误就应该是这个。

String sub = "update login set password=='" + pswd1 + "' where username='" + username + "' and password='" + pswd + "'";

有你这样写的吗?

既然已经把password作为set的对象了,就不能再把password做条件了

String sub = "update login set password=='" + pswd1 + "' where username='" + username + "' and password='" + pswd + "'";
数据库语句写错了

set password='"++pswd1"'

你多一个=