我有一堆针对 Railo 服务器编写的代码。我们现在正试图将其中的一些代码移至 CF11 盒子和 Lucee 盒子。
我一直在使用这样的 queryExecute:
rt = queryExecute(
sql = 'select *
from translation
where translationID = :translationID
and translatedStr = :translatedStr'
, params = {translationID: arguments.translationID
, translatedStr: arguments.translatedStr}
, options= {datasource: application.ds}
);
我的印象是 CF11 上的语法是相同的,但我收到了一个错误:
Parameter validation error for the QUERYEXECUTE function.
A built-in ColdFusion function cannot accept an assignment statement as a parameter,
although it can accept expressions. For example, QUERYEXECUTE(d=a*b) is not acceptable.
上面的 executeQuery 在 Lucee 上运行良好。我将需要检查整个代码库并使其在 CF11 和 Lucee 上都能正常工作。
更熟悉 ACF 的人可以告诉我这样做的最佳方法是什么。ACF 似乎在使用参数名称时遇到了问题。如果我删除sql =
并params =
消除一些问题,尽管我喜欢让它们命名的可读性。此外,ACF 似乎也不喜欢translationID: arguments.translationID
并希望我也对其进行更改translationID = arguments.translationID
。我只是想确保在完成所有更改的耗时过程之前没有遗漏任何东西。