jsp向数据库中插入数据的sql命令

这是第一个页面
<form name="myform" method="post" action="chktodb.jsp" >
发表次数:<input type="text" name="ID">
主 题:<input type="text" name="title">
简单描述:<input type="text" name="describe">
发帖 人:<input type="text" name="autor">
内 容:<input type="text" name="matter">
<center>
<input type="submit" value="注册">
<input type="reset" value="重置">
</center>
</form>
这是第二个页面
<%
int ID=Integer.parseInt(request.getParameter("ID"));
String title=new String(request.getParameter("title").getBytes("ISO8859_1"),"GBK");
String describe=new String(request.getParameter("describe").getBytes("ISO8859_1"),"GBK");
String autor=new String(request.getParameter("autor").getBytes("ISO8859_1"),"GBK");
String matter=new String(request.getParameter("matter").getBytes("ISO8859_1"),"GBK");
final String CLS="com.mysql.jdbc.Driver";
final String URL="jdbc:mysql://localhost:3306/bbsTest";
final String USER="root";
final String PWD="425680992";

Connection conn = null;
PreparedStatement pStmt = null;
ResultSet rs = null;

try{
Class.forName(CLS);
conn = DriverManager.getConnection(URL, USER, PWD);
String sql = "select * from test where " +
" ID=?";
pStmt = conn.prepareStatement(sql);
pStmt.setInt(1, ID);
rs= pStmt.executeQuery();
if(rs.next()){
err+="<h3>您的发表次数已经存在,请更换次数!</h3>";
valid=false;
}else{
sql="insert into test (ID,title,describe,autor,matter)values("+ID+",'"+title+"','"+describe+"','"+autor+"','"+matter+"')";
pStmt.executeUpdate(sql);

这基本上就是全部的代码了 但是一运行就出现这样的错误:
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
'describe,autor,matter)values(5,'hj','h','hj','hj')' at line 1
这是怎么回事 我确定我的数据库建立的表正确 里面的数据类型也正确

以mysql为例子给一个代码示例:如下

public class MemberDAO {
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn";
public static final String DBUSER = "root";
public static final String DBPASS = "1234";

private PreparedStatement ps = null;
private Connection conn = null;

public MemberDAO() {
// DatabaseConnection dbc = new DatabaseConnection();
// this.conn = dbc.getConnection(conn);
}

//---------------------------------------插入信息----------------------------------     
public boolean doInsert(Member member) throws Exception {
boolean flag = false;
String sql = "insert into member values(?,?,?,?,?,?,?,?,?)";
Connection conn = null;
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
ps = conn.prepareStatement(sql);
ps.setString(1, member.getUserid());
ps.setString(2, member.getPassword());
ps.setString(3, member.getName());
ps.setString(4, member.getSex());
ps.setString(5, member.getPhone());
ps.setString(6, member.getEmail());
ps.setString(7, member.getInterest1());
ps.setString(8, member.getInterest2());
ps.setString(9, member.getNote());

if (ps.executeUpdate() > 0) {
flag = true;

}
conn.close();
ps.close();
return flag;

}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-23
sql="insert into test (ID,title,describe,autor,matter) values ("+ID+",'"+title+"','"+describe+"','"+autor+"','"+matter+"')";追问

我就是这样写的啊 不行

追答

sql="insert into test (`ID`,`title`,`describe`,`autor`,`matter`) values ("+ID+",'"+title+"','"+describe+"','"+autor+"','"+matter+"')";

本回答被网友采纳
第2个回答  2012-12-27
值不对吧
第3个回答  2012-12-24
不是数据库的问题,就是语句的问题。建表语句有没有
相似回答