【问题标题】:ERROR: syntax error at end of input, Java - Postgres错误:输入末尾的语法错误,Java - Postgres
【发布时间】: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


【解决方案1】:

您在语句末尾缺少),并且表格无缘无故被双引号括起来..

sentencia.execute("INSERT INTO Registros (accion,num_tarjeta,valor,fecha_accion_ano,fecha_accion_mes,fecha_accion_dia) VALUES ('recarga','','','','','')");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2019-02-20
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多