简体   繁体   English

MySQL PreparedStatement:参数索引超出范围

[英]MySQL PreparedStatement: Parameter index out of range

I'v searched during one hour trough stackoverflow and couldn't find an answer to my problem (Well, there's people having the same error, but not exactly like mine). 我在一个小时内通过stackoverflow搜索,找不到我的问题的答案(嗯,有些人有相同的错误,但不完全像我的一样)。

So here's the code: 所以这是代码:

    public synchronized static void setAllData(String player, String xp, String lvl, String coins, String won, String lost, String kills, String deaths, String redput, String blueput, String time)
{
    try
    {
        PreparedStatement sql =
        connection.prepareStatement("UPDATE `" + Main.table + "` SET `xp` = ?, lvl` = ?,  `towercoins` = ?, `won` = ?, `lost` = ?, `kills` = ?, `deaths` = ?, `redput` = ?, `blueput` = ?, `time` = ? WHERE `player` = ?;");
        sql.setString(1, xp);
        sql.setString(2, lvl);
        sql.setString(3, coins);
        sql.setString(4, won);
        sql.setString(5, lost);
        sql.setString(6, kills);
        sql.setString(7, deaths);
        sql.setString(8, redput);
        sql.setString(9, blueput);
        sql.setString(10, time);
        sql.setString(11, player);
        sql.executeUpdate();
        sql.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

And i have this error every time: 而且我每次都有此错误:

Java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1). Java.sql.SQLException:参数索引超出范围(2>参数数量,为1)。

I don't get it since all parameters are here etc... so why ? 我不明白,因为所有参数都在这里等等...那为什么呢?

Thanks a lot :) 非常感谢 :)

似乎您错过了此声明的开头引号。

SET `xp` = ?, lvl` = ?,

就像这个连接" + Main.table + " (“ UPDATE " + Main.table + " SET xp =?, lvl =?, towercoins =?, won =?, lost =?, kills =?, deaths =?, redput =? , blueput =?, time =?WHERE player = blueput “);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM