Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jsp中更新mysql表中的行_Mysql_Forms_Jsp_Sql Update - Fatal编程技术网

在jsp中更新mysql表中的行

在jsp中更新mysql表中的行,mysql,forms,jsp,sql-update,Mysql,Forms,Jsp,Sql Update,我试图更新mysql表中的行,我使用html表单插入数据。在html表单属性value中,我正在使用数据库中的现有数据 Edit.jsp <form action="Update.jsp"> <% Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection("jdbc:

我试图更新
mysql表中的行
,我使用
html表单
插入数据。在html表单属性
value
中,我正在使用数据库中的现有数据

Edit.jsp

<form action="Update.jsp">
                <%  Class.forName("com.mysql.jdbc.Driver").newInstance();
                    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
                    Statement st = con.createStatement();
                    ResultSet rs = st.executeQuery("select u.login,i.name,i.surname,i.age,i.tel,i.email,a.street,a.town,a.zip,ul.name,t.name from users u join info i on i.user_id=u.user_id join user_level ul on ul.ulevel=u.ulevel join teams t on t.team_id=u.team_id join adress a on a.info_id=i.info_id where u.login='" + session.getAttribute("uzivatel") + "'");
                    while (rs.next()) {
                %>

                <div class="well well-large">
                    <font size="2"><b>Welcome, </b></font><font color="RED"><i><%= session.getAttribute("uzivatel")%></i></font><br>
                    <b>Name:</b> <input type="text" name="name" value="<%= rs.getString(2)%>"><input type="text" name="surname" value="<%= rs.getString(3)%>"> <br>
                    <b>Age:</b> <input type="text" name="age" value="<%= rs.getString(4)%>"><br>
                    <b>Telephone:</b> <input type="text" name="tel" value="0<%= rs.getString(5)%>"><br>
                    <b>E-mail:</b> <input type="text" name="email" value="<%= rs.getString(6)%>"><br>
                    <b>Adress:</b> <input type="text" name="street" value="<%= rs.getString(7)%>"><input type="text" name="town" value="<%= rs.getString(8)%>"><input type="text" name="zip" value="<%= rs.getString(9)%>"><br>
                    <b>User level:</b> <%= rs.getString(10)%><br>
                    <b>Team:</b> <%= rs.getString(11)%><br>
                    <input type="submit" name="Submit" value="Update" />
                </div>
            </form>

欢迎,
名称:
年龄:
电话:
电子邮件:
地址:
用户级别:
团队:
Update.jsp

<%
                String name = request.getParameter("name");
                String surname = request.getParameter("surname");
                String age = request.getParameter("age");
                String telephone = request.getParameter("tel");
                String email = request.getParameter("email");
                String street = request.getParameter("street");
                String town = request.getParameter("town");
                String zip = request.getParameter("zip");

                try {
                    Connection conn = null;
                    Class.forName("com.mysql.jdbc.Driver").newInstance();
                    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
                    Statement st1 = null;
                    st1 = conn.createStatement();
                    System.out.println(session.getAttribute("uzivatel"));
                    st1.executeUpdate("UPDATE users JOIN info ON users.user_id = info.user_id"
                            + " JOIN adress ON info.info_id = adress.info_id"
                            + "SET info.name = '"+name+"',info.surname = '"+surname+"',"
                            + "info.age = '"+age+"',info.tel = '"+telephone+"',info.email = '"+email+"',"
                            + "adress.street = '"+street+"',adress.town = '"+town+"',adress.zip = '"+zip+"',"
                            + "WHERE users.login ='" + session.getAttribute("uzivatel") + "'  ");
                    response.sendRedirect("AdministrationControlPanel.jsp");
                } catch (Exception e) {
                    System.out.println(e.getMessage());
                }
            %>


当我按下提交按钮时,它将我重定向到
Update.jsp
,没有任何更改。

您的查询中存在问题,这就是您没有得到任何结果的原因。在将字符串分成不同的行时,请在适当位置留出空间。 system.out.println()将在控制台而不是页面上显示消息

st1.executeUpdate("UPDATE users JOIN info ON users.user_id = info.user_id"
                        + " JOIN adress ON info.info_id = adress.info_id "
                        + "SET info.name = '"+name+"',info.surname = '"+surname+"', "
                        + "info.age = '"+age+"', info.tel = '"+telephone+"', info.email = '"+email+"',"
                        + "adress.street = '"+street+"',adress.town = '"+town+"',adress.zip = '"+zip+"', "
                        + "WHERE users.login ='" + session.getAttribute("uzivatel") + "'  ");

最好使用jQuery而不是调用page update.jsp。当您使用jQuery时,您可以将数据发送到带有参数的update.jsp页面,并从该页面获取响应并在页面中打印它,即使您可以从jQuery获取所有表数据

很简单,希望这能对你有所帮助。。例如,示例具有以下URL的外观

演示


我改了。现在输出显示:语法错误或访问冲突,来自服务器的消息:“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解在第1行“WHERE users.login='admin''附近使用的正确语法”我发现错误:WHERE前面有一个逗号