棘手的数据插入问题,高分
插入语句为:
sql = "insert into notebook (CID,name,prep,Fprice,Tprice,pic,time,cpu,os,mem,disk,net,disp,else,base,tejia)"+" valuse ("+cid+",'"+name+"','"+prep+"',"+Fprice+","+Tprice+",'"+pic+"',"+time+",'"+cpu+"','"+os+"','"+mem+"','"+disk+"','"+net+"','"+disp+"','"+else_prep+"','"+base+"',"+tejia+")";
dbcon.stmt.executeUpdate(sql);
产生的错误:
javax.servlet.ServletException: [MySQL][ODBC 3.51 Driver][mysqld-4.0.20a-nt]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 'else,base,tejia) valuse (2,'ibm','prep',20000,15000,'imbx30',20
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.wanpu_005fadmin_005fmodel.admin_005fwanpu_005fnotebook_jsp._jspService(admin_005fwanpu_005fnotebook_jsp.java:263)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
郁闷极了,请高手帮忙
问题点数:100、回复次数:10Top
1 楼wangwei8117(还没学会编程。)回复于 2004-09-02 15:49:22 得分 5
valuse 是不是输入错误了啊应该是value吧!再核对一下还有没有其他的错误吧!Top
2 楼flyRoy(芸枫)回复于 2004-09-02 15:50:09 得分 20
你这样写sql语句很容易出错,用PreparedStatement,一个一个set进去
Top
3 楼zhaoqiubo(赵小刀)回复于 2004-09-02 15:50:33 得分 5
valuse改成values.老大..这个问题太棘手了..Top
4 楼BillyW(阿弥陀佛)回复于 2004-09-02 15:55:16 得分 10
把整个sql语句打印到后台。
然后贴到mysql里运行一下。再分析Top
5 楼yangzuyu12(秋天的童话)回复于 2004-09-02 15:59:29 得分 5
valuseTop
6 楼mjfsun(清风)回复于 2004-09-02 16:00:16 得分 0
flyRoy(芸枫)
能举个例子给我看看?
小雄啊,不是哪个问题,改了还是这样的错误,我在mysql数据库中,time字段是Datetime型,我怀疑出错在这里,谁会往time字段插入阿,谢谢Top
7 楼flyRoy(芸枫)回复于 2004-09-02 16:11:24 得分 30
String strSQL="insert into notebook(CID,name,prep,Fprice,Tprice,pic,time,cpu,os,mem,disk,net,disp,else,base,tejia)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
PreparedStatement pstmt=conn.prepareStatement(strSQL);
pstmt.setInt(1,intCID);
.
.
.
pstmt.executeUpdate();
另外,如果插入错误的话,不妨把你的sql语句放到mysql中去执行下Top
8 楼Jacky1206(胖胖,其实我不胖)回复于 2004-09-02 16:18:24 得分 20
最佳办法还是把拼装生成后的sql拷贝出来,粘贴到mysql工具里的sql editor里面先看看,这样最好,否则光这么分析分析不出来的Top
9 楼zero_3(书名号)回复于 2004-09-02 16:25:37 得分 5
同意楼上的说法!应先那数据测试一下!在写入程序!Top
10 楼mjfsun(清风)回复于 2004-09-02 16:36:29 得分 0
谢谢各位了,我结贴了,有问题我会继续问:)Top




