jsp中sql的insert语句问题

问题描述

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");}
}

解决方案

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

解决方案二:

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

解决方案三:

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

解决方案四:

这不就是简单的验证么?

解决方案五:

sql语句都没执行,楼主还是好好找本jsp的教程来看看,而且sql语句语法也很生疏从你上一提出的问题就看出来

时间: 2024-08-04 14:17:11

jsp中sql的insert语句问题的相关文章

sql server根据表中数据生成insert语句

几个收藏的根据数据库生成Insert语句的存储过程[修正版] -- ======================================================--根据表中数据生成insert语句的存储过程--建立存储过程,执行spGenInsertSQL 表名--感谢playyuer----感谢szyicol-- ======================================================CREATE proc [dbo].[spGenInser

JSP中SQL数据库编程技术

js|编程|数据|数据库   JSP中SQL数据库编程技术一,SQL复习 1,SQL语句分为两类:DDL(Data Definition Language)和DML(Dat Manipulation Languge,数据操作语言).前者主要是定义数据逻辑结构,包括定义表.视图和索引;DML主要是对数据库进行查询和更新操作. 2,Create Table(DDL):  Create Table tabName(   colName1 colType1 [else],   colName2 colT

sql-Java执行SQL的insert语句

问题描述 Java执行SQL的insert语句 public class JDBC_2 { public static void main(String[] args) { try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/xskc"; String user = "root"; String pwd = "mch

数据库导入-sql脚本insert语句过长,导入报错

问题描述 sql脚本insert语句过长,导入报错 今天在用mysql导入sql脚本时,报错"MySQL server has gone away",经检测,是"insert...value..."里数据过多导致不能插入.后修改配置文件: 1.tmp_table_size 2.max_allowed_packet 仍旧报同样的错.来位大神解决了吧,真揪心. ps:最好是通过调整mysql配置参数,因为sql不是本人写的.

mysql 单引号 双引号-mysql 中,执行insert语句,单引号双引号区别

问题描述 mysql 中,执行insert语句,单引号双引号区别 建表的时候或者用Insert向表中插入记录时,会用到单引号和双引号.有时候感觉二者都行,但请问下这两者有什么区别.什么时候用单,什么时候用双?

MySQL中Update与Insert语句用法详解

MySQL 更新数据 Update 语句 update 语句的定义: UPDATE语法可以用新值更新原有表行中的各列.让我们先来看一下update语句标准的定义,放在[]内的都是可以省略的:  代码如下 复制代码 UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count] s

根据表中数据生成insert语句的存储过程

存储过程|数据|语句 有个缺点--就是标识种子的列 也insert了 CREATE   proc spGenInsertSQL (@tablename varchar(256)) as begin declare @sql varchar(8000) declare @sqlValues varchar(8000) set @sql =' (' set @sqlValues = 'values (''+' select @sqlValues = @sqlValues + cols + ' + '

SQL Server Insert操作中的锁

原文:SQL Server Insert操作中的锁     这篇博文简单介绍一下在SQL Server中一条Insert语句中用到的锁. 准备数据     首先我们建立一张表Table_1,它有两列Id(bigint)和Value(varchar),其中Id建立了主键. CREATE TABLE [dbo].[Table_2]( [Id] [bigint] NOT NULL, [Value] [nchar](10) NULL, CONSTRAINT [PK_Table_2] PRIMARY KE

insert语句在pl/sql中替换数据可以执行,但是java中却报错

问题描述 insert语句在pl/sql中替换数据可以执行,但是java中却报错 java语句: public int initiating(String title, String content, String numberLimit,String fkCustomerId) { String pkId = "44"; String sql="insert into ACTIVITY_INFO (pk_id,title,content,fk_customer_id,num