第一,你的sql的引号不对称
第二,如果要以参数的形式动态设置sql的插入值,你应该使用 ? 占位符,而不应该直接拼字符串

解决方案 »

  1.   

    下面是例子:String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?);
      

  2.   

    phone和zip不需要引号String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"',"+phone+","+zip+",'"+address+"')"; 
      

  3.   

    引号看起来真的不对不过冒试也可以拼的,偶以前也可以拼
    如里用?要用perperment吧,好像是,呵呵楼主再看看引号问题
      

  4.   

    String sql="insert into customers
    (idcustomer,username,password,realname,email,phone,zip,address) values("'"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"','"+phone+"','"+zip+"','"+address+"'")"; 
    你试试这个语句,你那语句在插入变量的一开始和结尾,都少了",红色的你仔细看看
      

  5.   

    对了,确实还有四楼兄弟说的phone和zip那
      

  6.   

    用PreparedStatement吧...这么拼比较容易错..
      

  7.   

    怎么现在了还有人拼sql语句,这不是误人子弟吗?
    String sql="insert into customers(idcustomer,username,password,realname,email,phone,zip,address) values(?,?,?,?,?,?,?,?); 安全 不出问题。拼sql语句肯定会有sql漏洞。正式网站没有这么写的。
      

  8.   

    完整版:
    String sql="insert into customers
    (idcustomer,username,password,realname,email,phone,zip,address) values("'"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"',"+phone+","+zip+",'"+address+"'")"; 
      

  9.   

    我后来把sql语句改称这样就行了
    而且还把phone zip 改称varchar类型
    String sql="insert into customers values('"+id+"','"+username+"','"+password+"','"+realname+"','"+email+"','"+phone+"','"+zip+"','"+address+"')";
        db.update(sql);
    反正这样就好了
    也不知道在怎么回事
      

  10.   

    把sql语句打出来看看就知道错在哪里了。