参数索引超出范围(8>参数数,即7) [英] Parameter index out of range (8 > number of parameters, which is 7)

查看:427
本文介绍了参数索引超出范围(8>参数数,即7)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有此数据库表:

create table users(
    id int not null auto_increment,
    fn varchar(30),
    ln varchar(30),
    sex char,
    email varchar(60),
    country varchar(40),
    username varchar(30),
    password varchar(100),
    primary key(id)
);

运行此代码时,出现错误:参数索引超出范围(8>参数数量,即7).我也尝试过更改setString(1,fn),但是它不起作用.

When I run this code, I am getting an error: Parameter index out of range (8 > number of parameters, which is 7). I also tried changing setString(1,fn) but it's not working.

 try{
     String INSERT="INSERT INTO users (fn,ln,,sex,email,country,username,password) VALUES (?,?,?,?,?,?,?)";
     PreparedStatement pst=conn.prepareStatement(INSERT);
     System.out.println("Created prepared statement");

     pst.setString(2,"fn");
     pst.setString(3,"ln");
     pst.setString(4,"sex");
     pst.setString(5,"email");
     pst.setString(6,"country");
     pst.setString(7,"username");
     pst.setString(8,"password)");
     pst.executeUpdate();
 }

推荐答案

您的查询中有一个逗号,并且列数应从1开始.

you have an extra comma in your query and your column count should start from 1.

String INSERT="INSERT INTO users (fn,ln,sex,email,country,username,password) VALUES (?,?,?,?,?,?,?)";
pst.setString(1,"fn");
    pst.setString(2,"ln");
    pst.setString(3,"sex");
    pst.setString(4,"email");
    pst.setString(5,"country");
    pst.setString(6,"username");
    pst.setString(7,"password)");
    pst.executeUpdate();

这篇关于参数索引超出范围(8>参数数,即7)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆