2014-10-20 41 views
0

我该如何解决这个问题。请帮帮我。
我已经尝试了很长时间来解决这个错误。但我不能。我该如何解决SQL命令没有正确结束

String mname=request.getParameter("m"); 
String imgurl=request.getParameter("imgurl"); 
String catocagory=request.getParameter("catocagory"); 
String[] s=new String[3]; 

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
Connection con=DriverManager.getConnection("jdbc:odbc:BoxOffice","system","sa"); 
Statement st=con.createStatement(); 

ResultSet rs; 
rs=st.executeQuery("select * from "+catocagory+"where name='"+mname+"'"); 
while(rs.next()) 
    { 
     s[0]=rs.getString("c1"); 
     s[1]=rs.getString("c2"); 
     s[2]=rs.getString("c3"); 
    } 
%> 
+2

如有疑问始终打印出来的查询和对数据库运行本身使用JDBC/ODBC ...... – Ben 2014-10-20 12:25:51

+1

停止桥。这是越野车,慢和不可靠。另外它在Java 8中不再可用。使用Oracle的“本机”JDBC驱动程序。如果你改变了这一切,切换到使用'PreparedStatement',因为你已经开放了SQL注入。最后使用连接池并将这些SQL语句移动到一个servlet中。不要将SQL处理直接放到JSP页面中。 – 2014-10-20 12:52:38

回答

2

您在串联SQL缺少空间,试试这个

rs=st.executeQuery("select * from " + catocagory + " where name='" + mname + "'"); 
相关问题