如何在mysql中更改密码列

时间:2016-12-29 13:50:55

标签: java windows

String user = request.getParameter("uname");
String pwd = request.getParameter("pass");
String pwd1 = request.getParameter("pass");
String pwd2 = request.getParameter("pass");

try{
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/logindb";
    Connection con = DriverManager.getConnection(url, "root", "root");

    String sql = "select * from register";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setString(1, pwd);
    ps.setString(2, request.getParameter("uname"));
    ResultSet rs = ps.executeQuery();
    if(rs.next())
    {
        sql = "update register set pass=? where uname=? ";
        ps = con.prepareStatement(sql);
        ps.setString(1, pwd);
        ps.setString(2, request.getParameter("uname"));
        ps.executeUpdate();
        out.println("password changed");

    }
}
catch(Exception e)
{
    out.println(e);
}

这是我的代码,它会显示我这样的错误

  

java.sql.SQLException:参数索引超出范围(1>参数个数,为0)。**

1 个答案:

答案 0 :(得分:2)

下面:

String sql = "select * from register";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, pwd);
ps.setString(2, request.getParameter("uname"));

您正在尝试设置不存在的参数。看起来像是一个复制粘贴错误。最后两行不应该在那里。