[英]Parameter index out of range (8 > number of parameters, which is 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)
但是它不起作用。
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開始。
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個變量,計數不匹配。
確保是否:
String INSERT="INSERT INTO users (fn,ln,,sex,email,country,username,password) VALUES (?,?,?,?,?,?,?)";
應該是這樣的:
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();
更正:
String INSERT="INSERT INTO users (fn,ln,sex,email,country,username,password) VALUES (?,?,?,?,?,?,?)";
和
short c = 0;
//using a counter variable (short or int) means
//no worries about numbering - just maintain the order below
pst.setString(++c,"fn");
pst.setString(++c,"ln");
pst.setString(++c,"sex");
pst.setString(++c,"email");
pst.setString(++c,"country");
pst.setString(++c,"username");
pst.setString(++c,"password)");
注意: ++c
是預增量運算符。 它將c
的當前值加c
(為此設置c
)並使用c
的新值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.