苹果醉了香蕉 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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘