<%
String user = request.getParameter("insert");
Statement stmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM student WHERE number LIKE '%user%'"; //查询语句
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
out.print("查询结果:");
out.print("<br/>");
while (rs.next()) {%>
例如我在前面一个页面输入1,并查询运行,最后得到的结果不是有关1的数据,而是有关user的数据,搜索变量值并没有实现,而是直接搜索变量名了。请问有大佬知道如何解决这个问题吗?非常感谢!!!
String sql = "SELECT * FROM student WHERE number LIKE '%“+user+”%'";
不要再用Statement了,不安全,会有sql注入隐患,参考:
//获取连接
Connection conn = DbUtil.getConnection();
//sql
String sql = "INSERT INTO imooc_goddess(user_name, sex, age, birthday, email, mobile,"+
"create_user, create_date, update_user, update_date, isdel)"
+"values("+"?,?,?,?,?,?,?,CURRENT_DATE(),?,CURRENT_DATE(),?)";
//预编译
PreparedStatement ptmt = conn.prepareStatement(sql); //预编译SQL,减少sql执行
//传参
ptmt.setString(1, g.getUser_name());
ptmt.setInt(2, g.getSex());
ptmt.setInt(3, g.getAge());
ptmt.setDate(4, new Date(g.getBirthday().getTime()));
ptmt.setString(5, g.getEmail());
ptmt.setString(6, g.getMobile());
ptmt.setString(7, g.getCreate_user());
ptmt.setString(8, g.getUpdate_user());
ptmt.setInt(9, g.getIsDel());
//执行
ptmt.execute();
我觉的1L说的对,单引号中的值能是个变量么