这是我的代码:
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(使用前将#替换为@)