我现在有点困惑。
我正在使用Rpi上的Node-Red将以下查询传递到本地网络上的sqlite数据库中>
UPDATE Users SET firstname='John', lastname='Doe' WHERE user_id='U50CC485';
一旦传入,数据库将返回此错误:
错误:SQLITE_ERROR:未指定表
其他所有类型的SQL查询都可以正常工作,如果将表更改为不存在的表,则会得到以下信息:
错误:SQLITE_ERROR:没有这样的表:示例
我还尝试过在函数外部单独传递命令,它运行良好。不知道从这里去哪里。
这里是用于生成查询的完整代码:
let body = msg.temp; // { firstname: "John", lastname: "Doe" } if(Object.entries(body).length === 0){ msg.payload = {ok:false,message:"No arguments to update"}; return msg; } let args = []; let data = []; if('firstname' in body){ args.push('firstname') data.push(body.firstname) } if('lastname' in body){ args.push('lastname') data.push(body.lastname) } if('email' in body){ args.push('email') data.push(body.email) } if(!args.length){ msg.payload = {ok:false,message:"Invalid arguments"}; return msg; } let updates = []; for(var arg = 0; arg < args.length; arg++){ updates.push(args[arg]+"='"+data[arg]+"'"); } let query = "UPDATE [Users] SET " + updates.join(', ') + " WHERE user_id='" + body.user + "';"; msg.topic = query; return msg;
msg
是输入,payload
属性用于数据,topic
属性用于查询。对于数据库,topic
是唯一拉出的属性。
我现在有点困惑。我正在使用Rpi上的Node-Red将以下查询传递到本地网络上的sqlite数据库中UPDATE Users SET firstname ='John',lastname ='Doe'WHERE user_id ='...
我已经检查了sqlite的source code。 no tables specified
错误与SELECT
语句解析器有关。