我在程序中包含了SQLite和SQLite语句。我有一个名为PILE的表,而PILE表具有以下各列
词|含义|频率| C1 | C2 | C3 | C4 | C5
tx.executeSql(
"UPDATE PILE SET ? = COALESCE( (SELECT ? FROM PILE WHERE word = ?), 0 ) -1 WHERE word = ?",
[category1, category1, incorrectmanualanswer, incorrectmanualanswer] ,
errorcode );
alert("down "+category1+"+"+incorrectmanualanswer);
上面的代码不执行。我在以下警报窗口中看到了正确的值
但是下面执行得很好
function screenONEpress(tx)
{
tx.executeSql(
"UPDATE PILE SET frequency = COALESCE( (SELECT frequency FROM PILE WHERE word = ?), 0 ) + 1
WHERE word = ?", [newEword, newEword] , errorcode );
}
最佳答案
参数插值用引号引起来,并转义要在sql语句中使用的参数,并且不会在SQL代码中插入裸字。因此,生成的sql看起来像UPDATE PILE SET 'category1' = COALESCE( ...
,这是一个语法错误。