Java 我正在尝试更新mySQL数据库,但是当我尝试更新多个列时,会发生错误
我正在尝试编辑/更新已输入表单的详细信息。当我尝试自己更新地址时,它会工作。但是,当我尝试更新多个列时,它不会。我假设以下代码存在问题,因为它与一个实体(而不是多个实体)一起工作Java 我正在尝试更新mySQL数据库,但是当我尝试更新多个列时,会发生错误,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我正在尝试编辑/更新已输入表单的详细信息。当我尝试自己更新地址时,它会工作。但是,当我尝试更新多个列时,它不会。我假设以下代码存在问题,因为它与一个实体(而不是多个实体)一起工作 Update register set (address, contact) = concat('"+address+"', '"+mob+"'); 这是java代码。这是错误显示,jsp显示为空白页面 try{ String session_id =null; HttpSession
Update register set (address, contact) = concat('"+address+"', '"+mob+"');
这是java代码。这是错误显示,jsp显示为空白页面
try{
String session_id =null;
HttpSession session1=request.getSession(false);
if(session1!=null){
session_id=(String)session1.getAttribute("name");
}
String name = request.getParameter("name");
String email = request.getParameter("email");
String pass = request.getParameter("password");
String address = request.getParameter("address");
String mob = request.getParameter("contact");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/alt", "root", "");
Statement stmt = con.createStatement();
stmt.execute("Update register set (address, contact) = concat('"+address+"', '"+mob+"') where uid='"+session_id+"'");
out.println("registration success");
response.sendRedirect("login.jsp");
}catch(Exception e){
}
%>
尝试以下更新语法:
update register set
address = concat('"+address+"', '"+mob+"'),
contact = concat('"+address+"', '"+mob+"')
where uid='"+session_id+"'");
您需要使用
updateset=,=
它显示一个空白页,因为您正在接受/忽略异常。永远不要这样做,至少要记录它或将它打印到错误中(例如e.printStackTrace()
)。无论如何,你的查询是错误的;查看MySQL文档中的正确语法。此外,永远不要将值连接到查询字符串中。它是不安全的,并且使您的代码容易受到SQL注入的攻击。请了解准备好的陈述。如果条件缺失,请将其添加到您的答案中