在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前面有一个逗号