当前位置:  开发笔记 > 后端 > 正文

当我们在网页中使用where子句时如何输入?

如何解决《当我们在网页中使用where子句时如何输入?》经验,为你挑选了1个好方法。

根据用户的输入,我想从数据库中选择记录.这是我的代码:

<%
String jempid=request.getParameter("empid");
out.println(jempid);
int intempid=1223;
Connection conn=null;
String url="jdbc:mysql://localhost/employees";
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn=DriverManager.getConnection(url,"root","");
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from empdetails where empnum=jempid");
%>

它会引发以下错误

javax.servlet.ServletException:java.sql.SQLException:'where子句中的未知列'jempid'

Marc Novakow.. 5

使用字符串连接构造SQL是一个坏主意 - 您只是打开自己的SQL注入攻击 - 特别是考虑到您直接从请求获得"empid"的值.哎呀!

更好的方法是使用参数化查询,如下所示:

PreparedStatement st=conn.prepareStatement("select * from empdetails where empnum=?");
st.setString(1, jempid);
ResultSet rs=st.executeQuery();

你还应该检查jempid是否为空.



1> Marc Novakow..:

使用字符串连接构造SQL是一个坏主意 - 您只是打开自己的SQL注入攻击 - 特别是考虑到您直接从请求获得"empid"的值.哎呀!

更好的方法是使用参数化查询,如下所示:

PreparedStatement st=conn.prepareStatement("select * from empdetails where empnum=?");
st.setString(1, jempid);
ResultSet rs=st.executeQuery();

你还应该检查jempid是否为空.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有