日期:2014-05-17  浏览次数:20797 次

论坛发表帖子出错!求高手解答~~~~~
更新访问次数

String sqlNum = "update article set num=num+1 where rootid = " + id;
Statement stmt = DB.createStmt(conn);
stmt.executeUpdate(sqlNum);

发表新帖子

String title = request.getParameter("title");
String cont = request.getParameter("cont");
String nameSign = (String) session.getAttribute("userId");
Connection conn = DB.getConn();
boolean autoCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
int rootId = -1;
String sql = "insert into article values(null,?,?,?,?,now(),?,?)";
PreparedStatement pstmt = DB.prepareStmt(conn,sql,Statement.RETURN_GENERATED_KEYS);
pstmt.setInt(1, 0);
pstmt.setInt(2, rootId);
pstmt.setString(3, title);
pstmt.setString(4, cont);
pstmt.setInt(5, 0);
pstmt.setString(6,nameSign);
pstmt.executeUpdate();

数据库Article表里的列有:
id
pid
rootid
title
cont
pdate
isleaf
name
num

更新访问次数是单独在一个jsp页面里更新数据库里的num值的,发表帖子的时候更新其他数据库里的列,name是通过session获取的,可是提交新帖子的时候会报错:
java.sql.SQLException: Column count doesn't match value count at row 1
insert的时候问号是必须跟数据库里的列对应么,到底是错在哪里了???
------解决方案--------------------
应该是now()的问题吧

------解决方案--------------------
设成一个参数试试啊

------解决方案--------------------
你在数据库里面测试一下你的sql语句啊,内容按照你设置进去的试试,看看数据库里面能不能运行