站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题SQL语法错误?

SQL语法错误?

摘要: SQL语法错误?


大家帮我看一下这个错误,当在search.html中输入11时,出现下面的错误,   谢谢了,

org.apache.jasper.JasperException: Exception in JSP: /search/pages.jsp:48

45: con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","admin");
46: stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
47: System.out.println(sql);
48: rs=stmt.executeQuery(sql);
49: rs.last();
50: RowCount=rs.getRow();
51: PageCount=((RowCount%PageSize)==0?(RowCount%PageSize):(RowCount%PageSize)+1);


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.ServletException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1' at line 1
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.search.pages_jsp._jspService(pages_jsp.java:255)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1' at line 1
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
com.mysql.jdbc.Connection.execSQL(Connection.java:3047)
com.mysql.jdbc.Statement.executeQuery(Statement.java:1166)
org.apache.jsp.search.pages_jsp._jspService(pages_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

pages.jsp源码如下
<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<%
String searchBookID=null;
String searchDate1=null;
String searchDate2=null;
String searchPrice1=null;
String searchPrice2=null;

int PageSize=2;
int ShowPage=1;
int RowCount=0;
int PageCount=0;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
%>
<%
searchBookID=request.getParameter("textBookID");
searchDate1=request.getParameter("textDate1");
searchDate2=request.getParameter("textDate2");
searchPrice1=request.getParameter("textPrice1");
searchPrice2=request.getParameter("textPrice2");

String sql="select * from book";
if(!searchBookID.equals(""))
{
sql+="where BookID = '"+searchBookID+"'";
}
else
{
sql+="where BookID like '%'";
}
if(!searchDate1.equals(""))
{
sql+="and PDate>=#"+searchDate1+"# and PDate<=#"+searchDate2+"#";
}
if(!searchPrice1.equals(""))
{
sql+="and Price>="+searchPrice1+"and Price<="+searchPrice2;
}
%>

<%
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","admin");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
System.out.println(sql);
rs=stmt.executeQuery(sql);
rs.last();
RowCount=rs.getRow();
PageCount=((RowCount%PageSize)==0?(RowCount%PageSize):(RowCount%PageSize)+1);
%>

<head>

高级搜索