【发布时间】:2016-11-18 01:41:47
【问题描述】:
我使用了下一条 SQL 语句,但在 PostgreSQL 中失败了。
sentencia.execute("INSERT INTO \"Registros\" (accion,num_tarjeta,valor,fecha_accion_ano,fecha_accion_mes,fecha_accion_dia) VALUES ('recarga','" + num_tarjeta + "','" + valor_recargar + "','" + Calendar.getInstance().get(Calendar.YEAR) + "','" + Calendar.getInstance().get(Calendar.MONTH) + "','" + Calendar.getInstance().get(Calendar.DAY_OF_MONTH) + "'");
出现此错误:
ERROR: syntax error at end of input
有什么问题?谢谢
【问题讨论】:
-
main 问题是您直接在 SQL 中指定了一个值。 不要那样做。 改用参数化 SQL,将代码与数据分开。一旦你解决了这个问题,你会更容易看到语法错误......并且不容易受到 SQL 注入攻击。此外,您多次调用
Calendar.getInstance(),这意味着您可以使用多个不同的值。想象一下,如果您在年底执行此正确...您最终可能会得到“旧”年,但会得到“新”月和日值。伊克。
标签: java sql postgresql