使用prepared语句插入javamysql数据库

使用prepared语句插入javamysql数据库,java,mysql,sql,prepared-statement,Java,Mysql,Sql,Prepared Statement,我已经看到了很多关于这个话题的问题,但似乎没有一个是正确的解决方案。我试图使用preparedstatements将新行插入数据库,但出现错误: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right s

我已经看到了很多关于这个话题的问题,但似乎没有一个是正确的解决方案。我试图使用preparedstatements将新行插入数据库,但出现错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1, 2, 3, 4, 5, 6, 7, 8, 9, guess, answer, value) VALUES (17, 187, 224, 276, 19, ' at line 1
这是我的代码:

String query = "INSERT INTO block (1, 2, 3, 4, 5, 6, 7, 8, 9, guess, answer, value)" + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
        PreparedStatement pst = con.prepareStatement(query);
        pst.setInt(1, array[0]);
        pst.setInt(2, array[1]);
        pst.setInt(3, array[2]);
        pst.setInt(4, array[3]);
        pst.setInt(5, array[4]);
        pst.setInt(6, array[5]);
        pst.setInt(7, array[6]);
        pst.setInt(8, array[7]);
        pst.setInt(9, array[8]);
        pst.setString(10, String.valueOf(letter[guess]));
        pst.setString(11, String.valueOf(answer));
        pst.setInt(12, value);

        pst.executeUpdate();
这是我的数据库:

我觉得我错过了一些非常简单的事情

任何帮助都将不胜感激!
谢谢大家!

您有语法问题。下面是我所说的:

标识符可以以数字开头,但除非引用,否则不能仅由数字组成

因此,您可能需要引用字段名:

String query = "INSERT INTO block (\"1\", \"2\", \"3\", \"4\", \"5\"
 , \"6\", \"7\", \"8\", \"9\", \"guess\", \"answer\", \"value\")" +
    " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

您需要确定
猜测
回答
字段的大小写敏感度是否适用。

您有语法问题。下面是我所说的:

标识符可以以数字开头,但除非引用,否则不能仅由数字组成

因此,您可能需要引用字段名:

String query = "INSERT INTO block (\"1\", \"2\", \"3\", \"4\", \"5\"
 , \"6\", \"7\", \"8\", \"9\", \"guess\", \"answer\", \"value\")" +
    " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

您需要确定
猜测
回答
字段的大小写敏感度是否适用。

表中的
1、2、3、4、5、6、7、8、9
实际列吗?是的,它们是从1开始的实际名称参数索引吗?也许您应该从pst.setInt(0,数组[0])开始@mBogaz是的,JDBC参数索引从1开始。。。是的,这是一个错误警报,它仍然不起作用,但我会继续尝试Hahahaare
1,2,3,4,5,6,7,8,9
您的
表中的实际列?是的,它们是从1开始的实际名称参数索引?也许您应该从pst.setInt(0,数组[0])开始@mBogaz是的,JDBC参数索引从1开始。。。是的,这是一个油漆,这是一个假警报,它仍然不工作,但我会继续尝试哈哈哈