无法把从表单读取的数据插入数据库 但是如果把插入命了加单引号插入测试的数据又是可以的 这是为什么啊代码如下:
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
</head>
<body>
<form name="form1" method="post" action="">
<p align="center">注册页面</p>
<table align="center" width="400" border="0">
<tr>
<td width="118"><div align="right">用户名:</div></td>
<td width="266"><div align="left">
<label>
<input name="username" type="text" id="username">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">密 码:</div></td>
<td><div align="left">
<label>
<input name="password" type="text" id="password">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">密码确认:</div></td>
<td><div align="left">
<label>
<input name="repassword" type="text" id="repassword">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">性 别:</div></td>
<td><div align="left">
<label>
<input type="radio" name="RadioGroup1" value="nan">
男</label>
<input type="radio" name="RadioGroup1" value="nv">
女
</div></td>
</tr>
<tr>
<td><div align="right">爱好:</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right">个人说明:</div></td>
<td><div align="left">
<label>
<textarea name="shuoming"></textarea>
</label>
</div></td>
</tr>
<tr>
<td><div align="right">
<label>
<input name="submit" type="submit" id="submit" value="提交">
</label>
</div></td>
<td><div align="left">
<label>
<input name="reset" type="reset" id="reset" value="重置">
</label>
</div></td>
</tr>
</table>
</form>
<%
request.setCharacterEncoding("UTF-8");
%><%
String url = "jdbc:mysql://localhost/jsp_test";
String userName="root";
String password="root";
String sql=null;
Connection conn = null;
Statement stmt=null;
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){
System.out.println("lassNotFoundException");
}
try{
String name= request.getParameter("username");
String psw= request.getParameter("password");
String sex= request.getParameter("RadioGroup1");
String shuoming= request.getParameter("shuoming");
out.println("您输入的用户名是:"+name);
out.println("您输入的性别是:"+sex);
conn=DriverManager.getConnection(url,userName,password);
stmt=conn.createStatement();
sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,na11, psw);";
int affected=stmt.executeUpdate(sql);
System.out.println("添加操作影响的数据行为"+affected);
stmt.close();
}catch(SQLException e){
System.out.println("出现SQL异常");
}finally{
try{
if(conn!=null) conn.close();
}catch(SQLException e){
System.out.println("关闭数据库时出现错误");
}
}
%>
</body>
</html>问题好像在这句sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,na11, psw);";这样执行的话出现的是出现SQL异常 如果问题好像在这句sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,'na11', 'psw');";
加了引号 就能查进去 这个是为什么啊
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
</head>
<body>
<form name="form1" method="post" action="">
<p align="center">注册页面</p>
<table align="center" width="400" border="0">
<tr>
<td width="118"><div align="right">用户名:</div></td>
<td width="266"><div align="left">
<label>
<input name="username" type="text" id="username">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">密 码:</div></td>
<td><div align="left">
<label>
<input name="password" type="text" id="password">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">密码确认:</div></td>
<td><div align="left">
<label>
<input name="repassword" type="text" id="repassword">
</label>
</div></td>
</tr>
<tr>
<td><div align="right">性 别:</div></td>
<td><div align="left">
<label>
<input type="radio" name="RadioGroup1" value="nan">
男</label>
<input type="radio" name="RadioGroup1" value="nv">
女
</div></td>
</tr>
<tr>
<td><div align="right">爱好:</div></td>
<td><div align="left"></div></td>
</tr>
<tr>
<td><div align="right">个人说明:</div></td>
<td><div align="left">
<label>
<textarea name="shuoming"></textarea>
</label>
</div></td>
</tr>
<tr>
<td><div align="right">
<label>
<input name="submit" type="submit" id="submit" value="提交">
</label>
</div></td>
<td><div align="left">
<label>
<input name="reset" type="reset" id="reset" value="重置">
</label>
</div></td>
</tr>
</table>
</form>
<%
request.setCharacterEncoding("UTF-8");
%><%
String url = "jdbc:mysql://localhost/jsp_test";
String userName="root";
String password="root";
String sql=null;
Connection conn = null;
Statement stmt=null;
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){
System.out.println("lassNotFoundException");
}
try{
String name= request.getParameter("username");
String psw= request.getParameter("password");
String sex= request.getParameter("RadioGroup1");
String shuoming= request.getParameter("shuoming");
out.println("您输入的用户名是:"+name);
out.println("您输入的性别是:"+sex);
conn=DriverManager.getConnection(url,userName,password);
stmt=conn.createStatement();
sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,na11, psw);";
int affected=stmt.executeUpdate(sql);
System.out.println("添加操作影响的数据行为"+affected);
stmt.close();
}catch(SQLException e){
System.out.println("出现SQL异常");
}finally{
try{
if(conn!=null) conn.close();
}catch(SQLException e){
System.out.println("关闭数据库时出现错误");
}
}
%>
</body>
</html>问题好像在这句sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,na11, psw);";这样执行的话出现的是出现SQL异常 如果问题好像在这句sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,'na11', 'psw');";
加了引号 就能查进去 这个是为什么啊
你写SQL语言的时候先在数据库里面试下在写到代码里面来
sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,'na11', 'psw')";这句是把16 nall psw这三个值插入到数据库,但是如果你的na11,psw是字符型变量或者说是从前台页面获取的值,那么必须这样写才是。
sql="INSERT INTO `jsp_test`.`ceshi` (id, user, password) VALUES (16,'"+na11+"', '"+psw+"')";
只有这样才可以将na11,psw里面的内容插入到数据库。