【发布时间】:2013-08-28 20:10:58
【问题描述】:
我有一个MySQL 数据库并想在其中写入一行。问题是MySQL 不喜欢我的query,为什么?这是我的代码:
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
for (Integer articlevalue : articlesendlist) {
for (Integer suppliervalue : suppliersendlist) {
connection.executeQuery("INSERT INTO Bestellungen(Bestellung_ID, Artikel_ID, Lieferant_ID, Datum, Preis) VALUES (" + maxorder + ", " + articlevalue + ", " + suppliervalue + ", " + date + ", NULL)");
}
}
我的代码的一个小描述。 articlesendlist 包含来自 JTabel 的选定值的 ID。这同样适用于suppliersendlist。我想将 ID 写入表“Bestellung”。变量maxorder 是表“Bestellung”的当前ID。
如果需要,例外是:
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 '12:45:06.164, NULL)' 附近
请不要评论/回答其他链接,我已经搜索过问题并阅读了几个网站。它们对我没有帮助或不适合我的问题。
- 感谢您的帮助
【问题讨论】:
-
首先,使用
PreparedStatemens来创建和执行您的查询,因为您的方式容易被SQL 注入。 -
能把执行的查询语句贴出来吗? - 错过了逃避约会? id 是 int 还是 varchar?试试这个:connection.executeQuery("INSERT INTO Bestellungen(Bestellung_ID, Artikel_ID, Lieferant_ID, Datum, Preis) VALUES (" + maxorder + ", " + articlevalue + ", " + suppliervalue + ", '" + date + "', NULL)");
-
@svz 你甚至不知道我是否使用它们。我给自己写了一个方法,你不知道我在里面用的是什么......
-
投反对票的能解释一下吗?
-
@Gerret,我知道您没有使用
PreparedStatement,因为您使用String连接来构建查询。