苹果醉了香蕉 2019-08-26 12:33 采纳率: 25%
浏览 288

无法更新数据到MySQL。

management.jsp(用post传到mcheckreview.jsp处理)

<form method="post" action="mcheckreview.jsp" >
                <div style="overflow-y:scroll; position:relative; right:100px; overflow-x:none; height:180px;">
                        <table border="0" width="100%">
                            <tr>
                                <td width="10%" style="text-align:center">编号</td>
                                <td width="20%" style="text-align:center">电话</td>
                                <td width="60%" style="text-align:center">评论</td>
                                <td width="10%" style="text-align:center">回复</td>
                            </tr>
<%
while(rs.next())
{
     String id=rs.getString(1);
     String number=rs.getString(2);
     String content=rs.getString(3);

%>
                            <tr>
                                <td style="text-align:center" name="id"><input name="id" value='<%=id %>' style="background:grey; border:none; outline:none; text-align:center;"> </td>
                                <td style="text-align:center" ><%=number %> </td>
                                <td style="text-align:center"><%=content %> </td>
                                <td><input type="submit" value="回复" ></td>
                            </tr>
<%
}
%>
                        </table>
                        </div>
                                 <input type="text"  name="back">
                    </form>

mcheckreview.jsp

<%
    Connection conn = null;
    PreparedStatement ps = null;
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/wutourism?&useUnicode=true&characterEncoding=UTF-8";
    String username = "root";
    String password = "imissyou15";
    conn = DriverManager.getConnection(url, username, password);
    request.setCharacterEncoding("utf-8");//设置编码方式,防止中文乱码
    String id = request.getParameter("id");
    String back = request.getParameter("back");//insert into review(id,back) values(?,?)
    String sql = "update review set back=? where id=?";
    ps = conn.prepareStatement(sql);
    ps.setString(1, id);
    ps.setString(2,back);
    int row = ps.executeUpdate();
    if(row>0){
        System.out.print(request.getParameter("id"));
        System.out.print(request.getParameter("back"));//测试是否取到上个页面的值
        out.println("<script language='javascript'>alert('成功!');window.location.href='./management.jsp';</script>");
    }
    ps.close();
    conn.close();
%>

问题:1:
System.out.print(request.getParameter("id"));
System.out.print(request.getParameter("back"));
把这两行代码放在if外面,命令行就可以输出取到的值;但放在if里面就取不到,是这里出错了吧?可是我注册语句这样写就没问题欸。
2: 取出来的数据id总是1,但我提交的时候点的并不是id=1那一行。

尝试:我觉得可能我sql语句有错,就从insert改到update,然后set back=?(set back='"+back+"') ,where id=?(where id='"+id+"')我都写过,但还是不对,改的时候也出现报错说 int row=ps.executeUpdate();那一句

说明:现在这样的代码问题在于 ,数据传不到数据库,但也不输出报错,也不会重定向到management.jsp(也就是上面那个页面)

  • 写回答

1条回答 默认 最新

  • Json-Huang 2019-08-26 12:41
    关注

    id值应该获取有问题导致,

     <td style="text-align:center" name="id"><input name="id" value='<%=id %>' style="background:grey; border:none; outline:none; text-align:center;"> </td>
     不太对多了个style,是不是应该改成如下试试:
     <td style="text-align:center" name="id"><input name="id" value='<%=id %>'</td>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题