jsp中sql的insert语句问题

下面这段话有什么问题,输入已有的用户名会执行“该用户名已存在”,但是输入新的用户名显示注册成功但是数据库里没有新的记录,应该是赋值语句有问题,请问insert语句哪里错了呢
String username=request.getParameter("r_user");
String password=request.getParameter("r_password");
sql=conn.createStatement();
rs=sql.executeQuery("select * from user where username='"+username+"'");
if(!rs.next()){String updateCondition="insert into user(username,password)values('"+username+"','"+password+"')";
out.print("注册成功!");response.setHeader("refresh","2;URL=index.jsp");}else{out.print("该用户名已存在");response.setHeader("refresh", "3;URL=reg2.jsp");}
}

DIEA
浏览 957回答 5
5回答

慕勒3428872

如果存在,你只是写了一个sql语句,并没有执行操作update啊,当然不会insert到数据了而且SQL语句使用拼接的方式会有SQL注入漏洞的,建议改成动态传参的方式

陪伴而非守候

已经解决了  我从网上找了输出e.printStactTrace()内容的语句,发现我有个列设定了非空并且没设默认值,所以没法添加记录。。。把那列的初始值赋上就好了。。。

PIPIONE

为什么是if(!rs.next())

斯蒂芬大帝

在if(!rs.next()=0){}好像是这么写的吧,你漏了一个=0.。。好像就是说当数据库中数据为空时才会执行以下操作吧。。你试试看

繁华开满天机

sql语句都没执行,楼主还是好好找本jsp的教程来看看,而且sql语句语法也很生疏从你上一提出的问题就看出来
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript