我将 Framework7 与 Coldfusion fw1 4.2 (Lucee 5.3) 一起用作 ajax JSON 响应的前端。我编写了以下模型\服务代码(在 fw1 中没有语法错误),该代码通过适当的控制器调用以返回 JSON 响应标志成功或失败。
所有参数都是字符串,因为我已经通过适当的 getMetadata(parameter).getName()
function judge_add(string name,string usernum,string judgename,string judgedate){
local.status={};
var arrayDate=listToArray(judgedate,"-");
var dateadded=createDate(arrayDate[1],arrayDate[2],arrayDate[3]);
transaction{
try{
myQry1=new Query();
myQry1.setDatasource(name);
myQry1.addParam(name="judgename", value="#judgename#", cfsqltype="CF_SQL_VARCHAR");
myQry1.addParam(name="dateadded", value="#DateFormat(dateadded,'YYYY-MM-DD')#", cfsqltype="CF_SQL_DATE");
myQry1.setSQL("INSERT INTO judge (name,assigned) VALUES (:judgename,:dateadded)");
myQry1.execute();
var judge_added=myQry1.execute().getResult().GENERATED_KEY;
myQry2=new Query();
myQry2.setDatasource(name);
myQry2.addParam(name="judge_added", value="#judge_added#", cfsqltype="CF_SQL_INTEGER");
myQry2.addParam(name="usernum", value="#Val(usernum)#", cfsqltype="CF_SQL_INTEGER");
myQry2.setSQL("INSERT INTO users_judge (judgeid,userid) VALUES (:judge_added,:usernum)");
myQry2.execute();
transaction action="commit";
local.status.success=1;
}catch(any e){
local.status.msg=e.Message;
local.status.error=1;
transaction action="rollback";
}
}
return local.status;
}
使用 Framework7 运行此代码,我收到一个错误 = 1 而不是成功 = 1 的 JSON 响应。此外,我删除了第二个查询以及事务括号,只留下 try/catch 仍然是相同的错误。另外,我用CF_SQL_TIMESTAMP代替CF_SQL_DATE,还是一样,没有MySQL数据插入,抛出异常。最后,我添加了 local.status.msg=e.Message,以便通过 json 响应详细描述我的错误。起初我得到了The named parameter [local] has not been provided
错误消息,现在我得到No matching property [GENERATED_KEY] found
了 MYSQL。
知道我能做什么吗?
问候