数据库插入不进去!!

liuchenxu 2008-05-09 09:10:00
<%@ page contentType="text/html;charset=GB2312" import="java.sql.*,java.util.*"%>
<jsp:useBean id="db" scope="page" class="BookShop.MyDb"></jsp:useBean>
<%request.setCharacterEncoding("gb2312");%>
<%

//获取注册数据
String id=(String)request.getParameter("id");
String username=(String)request.getParameter("username");
String password=(String)request.getParameter("password");
String realname=(String)request.getParameter("realname");
String email=(String)request.getParameter("email");
//String phone=(String)request.getParameter("phone");
String phone=(String)request.getParameter("phone");
String zip=(String)request.getParameter("zip");
String address=(String)request.getParameter("address");
String sql="insert into customers values ('lcx198625','fds','987','刘','654@163.com',321654,063000,'河北')";
//String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"','"+phone+"','"+zip+"','"+address+"')";
db.update(sql);

%>

<html>
<head>
<title>会员注册</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>

id是<%=id%>
<br>
用户名<%=username%>
<br>
密码是<%=password%>
<br>
真实姓名是<%=realname%>
<br>
email是<%=email%>
<br>
电话是<%=phone%>
<br>
邮编是<%=zip%>
<br>
地址是<%=address%>
<br>
</body>
</html>

上面是我的程序,就是在插入数据库那段,插不进去
不过,要是插入常量就可以
例如String sql="insert into customers values ('lcx198625','fds','987','刘','654@163.com',321654,063000,'河北')";
db.update(sql);
但是一变成变量就插不进去
而且从上一页接收变量一切正常
大家帮我看看 谢谢了
...全文
135 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyqiang 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mlitsn 的回复:]
phone和zip不需要引号

String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"',"+phone+","+zip+",'"+address+"')";
[/Quote]
xby123 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 oldseasoul 的回复:]
引用 9 楼 i_saw_you 的回复:
怎么现在了还有人拼sql语句,这不是误人子弟吗?
String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?); 安全 不出问题。拼sql语句肯定会有sql漏洞。正式网站没有这么写的。

正解
[/Quote]
oldseasoul 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 i_saw_you 的回复:]
怎么现在了还有人拼sql语句,这不是误人子弟吗?
String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?); 安全 不出问题。拼sql语句肯定会有sql漏洞。正式网站没有这么写的。
[/Quote]
正解
Binary Wang 2008-05-09
  • 打赏
  • 举报
回复
把sql语句打出来看看就知道错在哪里了。
liuchenxu 2008-05-09
  • 打赏
  • 举报
回复
那现在一般都是用什么样的格式呀???
正规的网站怎么写呀
现在我使用的这种格式是
我们老师教的
所以用的比较熟悉
liuchenxu 2008-05-09
  • 打赏
  • 举报
回复
页面没有显示出错,运行也正常
能够显示这一页面
就是数据库里没东西
minlucky 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qin_07 的回复:]
看看打印的抱错信息 会很明确的告诉你错在哪
[/Quote]


楼主输出一下 id,有可能没有取到值!
liuchenxu 2008-05-09
  • 打赏
  • 举报
回复
我后来把sql语句改称这样就行了
而且还把phone zip 改称varchar类型
String sql="insert into customers values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"','"+phone+"','"+zip+"','"+address+"')";
db.update(sql);
反正这样就好了
也不知道在怎么回事
burningice44 2008-05-09
  • 打赏
  • 举报
回复
完整版:
String sql="insert into customers
(idcustomer,username,password,realname,email,phone,zip,address) values("'"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"',"+phone+","+zip+",'"+address+"'")";
i_saw_you 2008-05-09
  • 打赏
  • 举报
回复
怎么现在了还有人拼sql语句,这不是误人子弟吗?
String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?); 安全 不出问题。拼sql语句肯定会有sql漏洞。正式网站没有这么写的。
shadowlin 2008-05-09
  • 打赏
  • 举报
回复
用PreparedStatement吧...这么拼比较容易错..
burningice44 2008-05-09
  • 打赏
  • 举报
回复
对了,确实还有四楼兄弟说的phone和zip那
burningice44 2008-05-09
  • 打赏
  • 举报
回复
String sql="insert into customers
(idcustomer,username,password,realname,email,phone,zip,address) values("'"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"','"+phone+"','"+zip+"','"+address+"'")";
你试试这个语句,你那语句在插入变量的一开始和结尾,都少了",红色的你仔细看看
w111222j 2008-05-09
  • 打赏
  • 举报
回复
引号看起来真的不对

不过冒试也可以拼的,偶以前也可以拼
如里用?要用perperment吧,好像是,呵呵

楼主再看看引号问题
mlitsn 2008-05-09
  • 打赏
  • 举报
回复
phone和zip不需要引号

String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"',"+phone+","+zip+",'"+address+"')";
qin_07 2008-05-09
  • 打赏
  • 举报
回复
看看打印的抱错信息 会很明确的告诉你错在哪
FredWorks 2008-05-09
  • 打赏
  • 举报
回复
下面是例子:

String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?);

FredWorks 2008-05-09
  • 打赏
  • 举报
回复
第一,你的sql的引号不对称
第二,如果要以参数的形式动态设置sql的插入值,你应该使用 ? 占位符,而不应该直接拼字符串

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧