【问题标题】:Is it possible to supply parameters for table or column name in Prepared Statements or QueryRunner.update()?是否可以在 Prepared Statements 或 QueryRunner.update() 中为表名或列名提供参数?
【发布时间】:2013-05-31 14:14:27
【问题描述】:

删除?在哪里 ? = ?

是否可以为所有这些 ?s 输入参数?似乎如果我不提供字符串,我会得到错误。例如,它似乎只有在我有类似的东西时才有效:

从非营利组织中删除 WHERE nonpid = ?

它只接受这样的参数。

【问题讨论】:

    标签: java postgresql servlets jdbc


    【解决方案1】:

    答案是否定的,你不能在准备好的语句中使用表名。准备好的语句仅适用于列值。

    这通常可以通过备用模式来规避,但如果您确实需要,您始终可以通过修改查询字符串将可选的表名称构建到查询中。如果您这样做,请确保清理您的输入以防止 sql 注入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多