MySQL 报错:Parameter index out of range (2> number of parameters, which is 1)

来源:互联网 发布:linux vim 退出命令 编辑:程序博客网 时间:2024/05/18 15:08

今天在做数据库更新操作的时候,一直报这个错,耗费了好长时间,最后终于发现,原来是我的"?"写成中文的“?号了,曾多次告诫自己写代码的时候一定要细心,可还是出现了这样的错误,真是想骂自己,哎.........如下是查找到的比较有用的资料

翻译为:找到了25个问号,却插入了26个值,导致参数越界(根据得到的信息打印将很容易判断数据是否与数据库字段匹配等小问题)。

与sql语句有关的原因如下:

1.?号被单引号包围。(如setString(1,"slkdjfkd");时sql语句为:insert into table1 (c1,c2) values ('?','?'))。此时?会被作为参数传入,而不会再传入 setString里面的值。

2.sql语句中没有?号,在后面用到了set语句。(如:select * from table);此时无需传值。传值就会出错。

3.初学者很常见的错误:?---?这两个问号是不同了,因为一个是中文,一个是英文,如果在sql语句中写入的是中文,将无法识别。

0 0