我的prepareStatement
项目
有问题问题是我想根据用户类型查询表,即如果用户是一般用户则访问userlist
表,如果用户是管理员则访问admin
表
我尝试过:
String userid=request.getParameter("userid");
String pwd=request.getParameter("pwd");
String check = request.getParameter("radio");
String table;
String status="";
if(check.equals("General"))
table="userlist";
else
table="Administrator";
try{
String sql = "Select status from"+table+"where userid=? and pwd=?";
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/Quiz?","root","password");
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,userid);
ps.setString(2,pwd);
ResultSet rs=ps.executeQuery();
我得到以下异常:
Errorcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'userid='nawed13593' 和 pwd='hello'' 附近使用正确的语法
我不想使用createStatement
,因为这会使我的项目容易发生 sql 注入
谁能帮我解决这个问题以及引发上述异常的原因?
先感谢您