如何在for循环中执行准备好的语句以从jsp中的表中获取数据?

索努·加德瓦

这段代码有什么问题?我收到此错误。

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'attendance where sub_id='3' and reg_no='1111'' at line 1

代码

try {
    Class.forName("com.mysql.jdbc.Driver");
    Connection con =
            DriverManager.getConnection("jdbc:mysql://localhost:3306/sms", "root", "*****");

    int k;
    String sub = "";
    int t_class[] = new int[counter];
    int att_class[] = new int[counter];
    int tallo_class[] = new int[counter];

    PreparedStatement ps3;
    PreparedStatement ps4;
    PreparedStatement ps5;

    for (k = 0; k < (counter - 1); k++) {

        sub = subjects_id[k];

        //START : getting total no of classes held 
        ps3 = con.prepareStatement("SELECT COUNT(*) FORM attendance where sub_id=? and reg_no=?");

        ps3.setString(1, sub);
        ps3.setString(2, reg_no);

        ResultSet rs3 = ps3.executeQuery();

        rs3.next();
        t_class[k] = rs3.getInt(1);
    }
}
萨姆·奥罗斯科

所以一个重要的提示是你希望prepare你的语句在循环之外。这就是准备它的重点(另外,参数化输入)。您可以重复使用该语句,然后如上所述您拼错了单词FROM

PreparedStatement statement = con.prepareStatement("SELECT COUNT(*) FROM attendance where sub_id=? and reg_no=?");
        for (int i = 0; i < (k - 1); i++) {
            statement.setString(1, sub);
            statement.setString(2, reg_no);
            ResultSet rs3 = ps3.executeQuery();
            rs3.next();
            t_class[k] = rs3.getInt(1);
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在准备好的语句Java中插入Big Integer

如何从准备好的语句创建视图或表(选择查询)

如何在pg_stat_activity.query字段中检查准备好的语句的内容

如何使用准备好的语句在代号一个数据库中插入数据?

如何从执行的准备好的语句创建JSON?

准备好的语句以选择php中的数据

如何在Sequelize中创建准备好的语句?

使用准备好的语句PHP获取当月的SQL表数据

使用准备好的语句从数据库中获取数据时遇到问题

如何在Sqflite中为Flutter使用准备好的语句

如何在PHP中的PostgreSQL数据库上使用多个参数编写准备好的语句

如果列之一是使用准备好的语句自动递增,如何在mysql数据库中插入值

如何在使用PDO执行之前识别准备好的语句列名称

PDO:如何在一个事务中运行多个准备好的语句?

用准备好的语句插入表中

Eclipse中的准备好的语句执行

准备好的语句执行致命错误,变量与数据库表未命中匹配

当我执行一条准备好的语句以选择db表中的行时,pdo是否“获取”记录并对其进行缓存?

无法获取准备好的语句以在php中打印

如何在foreach循环中执行两个不同的php准备好的语句?

我如何使用准备好的语句更新mysql数据库中的值

我需要使用准备好的语句处理从数据库中获取的数据吗?

从准备好的语句中获取表名

在mysql中获取准备好的语句列表

在 mysqli 中使用准备好的语句时获取数据

如何使用准备好的语句从 mysql 中获取多行

准备好的语句不获取数据

如何在准备好的语句游标中添加集合(列表等)参数

PHP 尝试使用准备好的语句将数据插入到两个不同的表中