问题标签 [cfqueryparam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
coldfusion - 如何以编程方式清理 ColdFusion cfquery 参数?
我继承了一个大型的旧版 ColdFusion 应用程序。有数百个 <cfquery>some sql here #variable#</cfquery> 语句需要沿以下行参数化: <cfquery> some sql here <cfqueryparam value="#variable#"/> </cfquery>
如何以编程方式添加参数化?
我曾考虑过编写一些正则表达式或 sed/awk'y 之类的解决方案,但似乎某个地方的某个人已经解决了这样的问题。自动推断 sql 类型可获得奖励积分。
sql - 使用 CFQUERYPARAM 在 SQL 中指定表/列名
我需要动态构造一组 JOIN 语句,其中表名和列名是从另一个 ColdFusion 查询传入的。当将字符串值传递到语句中时,CFQUERYPARAM 在其周围添加单引号 - 这是 CFQUERYPARAM 要点的一部分。鉴于这破坏了 SQL 语句,在这种情况下不使用 CFQUERYPARAM 而是确保清理传入的查询是否可以接受,或者是否有办法允许使用 CFQUERYPARAM?(我可以使用 Fusebox 中的电路/保险丝权限锁定这些代码。)
谢谢。
coldfusion - 这个 cfqueryparam 内存泄漏有解决方案吗?
更新:
我已将错误提交给 Adobe 并引用了这个 SO question
在发生问题的实际代码中,我决定只删除对 cfqueryparam 的使用。我现在使用自定义函数来根据类型格式化参数。我将不得不处理安全和速度方面的问题,但它可以让特定进程在当前负载下可接受地工作。
将来,我计划将数据文件拉入数据库中的临时表中。然后我将尽可能使用 SQL 对数据执行操作并将数据传输到实时表,而不是依赖 ColdFusion
我在插入数据时使用 cfqueryparam 标记循环查询时遇到问题。(我没有测试过选择或更新查询)。循环逐渐占用更多内存,直到请求完成才释放。但是,仅当在函数中循环查询时才会出现此问题。
它似乎对使用的 cfqueryparam 标记的数量非常敏感。在此示例中,插入了 15 个值,但是在我的代码中实际上需要它才能工作,我正在插入未知数量的值,这会使问题更加严重。
下面是显示问题的代码。给它一个数据源名称(在 MSSQL 上测试),它将创建一个 tmp 表并插入记录作为示例,无论是否在函数中。内存使用情况显示在非函数循环之前、之后、函数内循环之后。它还请求垃圾收集并在输出内存信息之前等待 10 秒,以确保它尽可能准确地显示信息。
根据我对这个特定测试的经验,函数内循环导致使用了超过 200mb 的内存。在我的现实世界中使用它会使 ColdFusion 崩溃 :-(
只是为了说明可以在操作期间释放内存,下面是示例代码,它构建了一个更大的结构,并显示了在变量被覆盖和垃圾收集之前和之后使用的内存。在我运行此内存后,填充为 118mb,覆盖和垃圾收集后为 31mb。
sql - 如何在 ORDER BY 子句中使用 cfqueryparam?
我正在努力成为一名优秀的 CF Web 开发人员,并使用<cfqueryparam>
所有 FORM 或 URL 元素来实现我的 SQL 查询。
在这种情况下,我试图让用户动态控制 ORDER BY 子句。
当我这样做时,我收到以下错误:
由 ORDER BY 编号 1 标识的 SELECT 项包含一个变量,作为标识列位置的表达式的一部分。只有在通过引用列名的表达式进行排序时才允许使用变量。
关于如何安全地做到这一点的任何建议?
coldfusion - DAO.cfc 中的动态表名?
我正在编写一个子系统,表可能会从一个项目重命名到另一个项目。
而不是要求我的子系统的用户在使用它之前进行搜索和替换,这行得通吗?
没有<cfqueryparam>
,它会变得不可缓存吗?或任何其他问题?(假设 SQL 注入不是问题)
我不认为我可以使用<cfqueryparam>
表名,对吧?
谢谢。
mysql - CFQUERYPARAM 在 URL 中以“+”中断
我有一个查询:
Id在MySQL中是一个INTEGER,但是上面的查询返回一个不是来自表的Id,甚至不是一个INTEGER,它似乎是一个随机的BIGINT!如果我删除 CFQUERYPARAM 它虽然可以工作......
Field1、Field2 和 Field3 在数据库中都是 VARCHARS,但在 URL 中它们包含“+”,例如
Field1=text+moretext
如果我从 URL 字符串中删除“+”,它工作正常!我知道“+”是一个空格的表示,如果我实际上再次在 URL 中键入一个空格,它就可以正常工作。只有在出现“+”时才会中断。
我做错了什么?或者我该怎么做才能使 CFQUERYPARAM 与 URL 中的“+”一起工作
sql - 最适合用于 MS SQL 的 uniqueidentifier 字段类型的 Coldfusion cfsqltype 是什么?
从 Coldfusion 8 连接到 MS SQL 2008 数据源时,对于设置为“唯一标识符”的 SQL 列,我应该使用什么 Coldfusion cfsqltype。
谢谢!
mysql - 在 Coldfusion CFQUERY 中按 Min 而不是按 Day 比较 DateTime 值
这是我的查询。
它能够给我所有 expdatetime 小于#yourdate# 的结果,唯一的问题是它只显示结果谁的差异是一整天,而不是那些差异以分钟为单位的结果。因此,差异小于 #yourtime# by min's 的 expdatetime 不会显示在结果中,除非差异至少相差一天。
如何针对最小精度优化此查询?
我知道两个可能有用的函数,DateDiff 和 DateCompare,但我不知道如何在查询中应用它们。
DateDiff("datepart", "date1", "date2")
DateCompare("date1", "date2" [, "datePart"])
日期部分精度
任何帮助将不胜感激。
sql - cfqueryparam 问题/帮助
通过这个问题,我被告知开始对我的数据使用 cfqueryparam,以防止 SQL 注入攻击。
我如何将它用于我的表格?现在我一直在阅读 Ben Forta 的书 Vol 1 并将数据传递给我的表单,然后传递给一个调用 CFC 的表单处理器。CFC 将它们作为一个cfargument
然后将其注入到具有任何 type="x" 验证的数据库中。
Io 使用cfqueryparam
,我在查询本身上使用它,甚至没有声明cfargument
?
string - ColdFusion cfqueryparam 和复杂查询的问题
我有一个查询,我使用一个插入查询插入约 300 条记录。对于每条记录,我必须对数据进行替换和操作。我刚刚发现我现在必须使用 cfqueryparam,因为其中一条记录是 CLOB 并且达到了很大的大小。我使用字符串来形成查询并将字符串放在 cfquery 标记中。现在我不能这样做,因为您必须使用 PreserveSingleQuotes 将字符串 var 放入 cfquery 标记中,并且不能将 PreserveSingleQuotes 与 cfqueryparam 一起使用。那么我最好的选择是在 cfquery 标记内执行所有操作和循环吗?它能够处理吗?还是我必须做 1000 个单独的插入语句?有更好的主意吗?谢谢。