String sql = "select * from admin where id='" + oldId + "' and loginPassWord='" + oldPw + "'"; String sql1 = "update admin set loginPassWord = ? where id = ?";
时间: 2023-06-27 08:04:12 浏览: 111
string sql
这段代码看起来是一个用户修改密码的功能,但是存在 SQL 注入的风险,建议使用参数化查询来避免这种风险。具体可以使用 PreparedStatement 对象来进行查询和修改操作,例如:
```
String sql = "select * from admin where id=? and loginPassWord=?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, oldId);
pstmt.setString(2, oldPw);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
String sql1 = "update admin set loginPassWord=? where id=?";
PreparedStatement pstmt1 = connection.prepareStatement(sql1);
pstmt1.setString(1, newPw);
pstmt1.setString(2, oldId);
int result = pstmt1.executeUpdate();
if (result > 0) {
// 修改成功
} else {
// 修改失败
}
} else {
// 用户名或密码错误
}
```
这样可以保证输入的参数不会被当做 SQL 语句的一部分,从而避免 SQL 注入的风险。
阅读全文