[英]Insert user IP Address into MySql table using Prepared Statement in java
[英]java mysql database insert using prepared statement
我已经看到了很多与此主题有关的问题,但似乎没有一个是正确的解决方案。 我正在尝试使用preparestatements将新行插入数据库中,但出现错误:
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();
这是我的数据库: sql
我觉得我缺少一些非常简单的东西。 。 。
任何帮助将不胜感激! 谢谢!
您有语法问题。 这是MySql文档所说的:
标识符可以以数字开头,但除非加引号,否则不能仅由数字组成。
因此,您可能需要引用您的字段名称:
String query = "INSERT INTO block (\"1\", \"2\", \"3\", \"4\", \"5\"
, \"6\", \"7\", \"8\", \"9\", \"guess\", \"answer\", \"value\")" +
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
您需要确定guess
, answer
和value
字段的区分大小写是否适用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.