日期:2014-05-18  浏览次数:20779 次

用户注册问题
上次那个数据库问题已解决,在次谢谢各位大哥啦!现在又有一个问题了,就是用户注册时发现的问题!1:我用的是MYSQL数据库,我在用户表UserTable定义了UserRealName(真实姓名)这个字段,数据类型是CHAR。但是我在输入数据时(如输入张三),MYSQL就报错了,说Incorrect   string   Value!这该怎么解决啊,难道不能用中文?我在MYSQL安装时选的是GBK啊!2:由于不能输入中文,我在注册框中输入的全是英文和数字。可在执行SQL语句的时候还是出现了异常。以下是我的代码:
<%@   page   contentType= "text/html;charset=GB2312 "   %>
<%@   page   import= "java.sql.* "   %>
<%!
public   String   codeToString(String   str)
{//处理中文字符串的函数
    String   s=str;
    try
        {
        byte   tempB[]=s.getBytes( "ISO-8859-1 ");
        s=new   String(tempB);
        return   s;
      }
    catch(Exception   e)
      {
        return   s;
      }    
}
%>
<%//接收客户端提交的数据
  String   username=codeToString(request.getParameter( "username "));
  if(username==null)//无内容则设为空串
        username= " ";
  String   password=codeToString(request.getParameter( "password "));
  if(password==null)//无内容则设为空串
        password= " ";
  String   usertruename=codeToString(request.getParameter( "usertruename "));
  if(usertruename==null)//无内容则设为空串
        usertruename= " ";
  String   age=codeToString(request.getParameter( "age "));
  int   ageint;
  try
  {
    ageint=Integer.parseInt(age.trim());
  }
  catch(Exception   e)
  {
    ageint=0;     //没有输入年龄或输入的年龄不是数字则值为0
  }
  String   sex=codeToString(request.getParameter( "sex "));
  if(sex==null)//无内容则设为空串
        sex= " ";
  String   address=codeToString(request.getParameter( "address "));
  if(address==null)//无内容则设为空串
        address= " ";
  String   telephone=codeToString(request.getParameter( "telephone "));
  if(telephone==null)//无内容则设为空串
        telephone= " ";
%>
<%//构造追加记录SQL语句
  String   sqlString=null;//SQL语句
  sqlString= "insert   into   userTable

(user_name,user_password,user_true_name,user_age,user_sex,user_address,user_telephone) "+
                        "   values

( ' "+username+ " ', ' "+password+ " ', ' "+usertruename+ " ', "+ageint+ ", ' "+sex+ " ', ' "+address+ " ', ' "+t

elephone+ " ') ";
%>
<%//执行SQL语句
  try  
        {   Connection   con;
            Statement   sql;
            Class.forName( "com.mysql.jdbc.Driver ");
            con=DriverManager.getConnection( "jdbc:mysql://localhost:3306/JOB ", "root ", "1 ");
            s