2

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

谢谢。

4

2 回答 2

5

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

我立即怀疑“动态构造一组 JOIN 语句”的说法——如果你动态地加入,听起来你不一定能正确地做事。

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

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

于 2009-03-24T14:08:00.500 回答
1

您可以使用其中的两个来转义单引号。您还可以使用 preserveSingleQuotes 函数。

于 2009-03-26T18:43:20.727 回答