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

标签 sql coldfusion cfqueryparam

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

谢谢。

最佳答案

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

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

但是,对于表名/列名,一旦您确定完全 sanitizer - 如果cfqueryparam不起作用,您需要 cf 变量 - 那么,您可以直接使用 CF 变量。

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

关于sql - 使用 CFQUERYPARAM 在 SQL 中指定表/列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/676761/

相关文章:

list - 我应该如何在 CFQUERYPARAM 列表 ="true"中使用 maxlength ?

sql - 从 UML 模型生成 SQL?

php - 来自结果的新 SQL PDO 查询

mysql - 如何使用表 B 中的记录计数更新表 A 中的分数列?

syntax - ColdFusion 是否有用于创建结构的简短语法?

tsql - 在查询查询中使用 CFQUERYPARAM 是否有任何合乎逻辑的理由?

MySQL - 计算自上次登录以来一个用户更改了多少个 "items"

mysql - Coldfuson CFScript "setSQL"方法未找到

javascript - 如何在 ColdFusion 中使用标签 cfwddx

coldfusion - 将 cfqueryparam 与常量一起使用