将查询参数与 cfscript 查询一起使用时出错

2023-11-24

这是我的代码:

var qryStr = "
            UPDATE templates_email 
            SET title = :title, test_emails = :testEmail, body = :body
            WHERE id = :templateID";

q = New Query();
q.setSQL(qryStr);
q.addParam(name="title", value="#arguments.title#", cfsqltype="cf_sql_char");
q.addParam(name="body", value="#arguments.templateContent#", cfsqltype="cf_sql_char");
q.addParam(name="testEmail", value="#arguments.test_emails#", cfsqltype="cf_sql_char");
q.addParam(name="templateID", value="#arguments.id#", cfsqltype="cf_sql_integer");

return q.execute().getResult();

这是错误:

在指定的参数列表中找不到参数“body WHERE”

SQL: UPDATE templates_email SET title = :title, test_emails = :testEmail, body = :body WHERE id = :templateID

错误发生在 C:\ColdFusion9\CustomTags\com\adobe\coldfusion\query.cfc: 第 108 行

我只能假设我的 SQL 参数结构方式出了问题,但无法弄清楚它是什么。谁能看到我在这里做错了什么吗?


用于获取参数的解析器不会对返回值进行标记,仅对空白进行标记(这真的很烦人)。请尝试以下操作:

var qryStr = "
    UPDATE templates_email 
    SET title = ( :title ), test_emails = ( :testEmail ), body = ( :body )
    WHERE ( id = :templateID )
";

The ( and )应该消除解析器无法识别 :params 停止和开始位置的任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将查询参数与 cfscript 查询一起使用时出错 的相关文章

随机推荐