使用CFQUERYPARAM在SQL中指定表/列名

Ali*_*ock 2 sql coldfusion cfqueryparam

我需要动态构造一组 JOIN 语句,其中表名和列名是从另一个 ColdFusion 查询传入的。将字符串值传递到语句中时,CFQUERYPARAM 在其周围添加单引号 - 这是 CFQUERYPARAM 要点的一部分。鉴于这会破坏 SQL 语句,在这种情况下不使用 CFQUERYPARAM 而是确保传入的查询被清理是否可以接受,或者是否有办法允许使用 CFQUERYPARAM?(我可以使用 Fusebox 中的电路/熔丝权限锁定这些代码片段。)

谢谢。

Pet*_*ton 5

cfqueryparam不添加单引号 - 它使用绑定变量。

我立即对“动态构造一组 JOIN 语句”这一说法表示怀疑 - 听起来如果您动态加入,您不一定会正确地做事。

但是,对于表/列名称,一旦您确实完全清理了- 如果cfqueryparam不起作用并且您需要 cf 变量 - 那么是的,您可以直接使用 CF 变量。

注意:为了安全地清理,您可以使用rereplacenocase(table_name,'[^a-z_]','','all')删除 az 和下划线以外的所有内容。