Javascript 为什么更新mysql时where子句出错

Javascript 为什么更新mysql时where子句出错,javascript,mysql,node.js,Javascript,Mysql,Node.js,“where子句”中的未知列“CR0001”出现错误,我不知道为什么,因为where子句是关于id\u指示器列的,而不是CR0001。这是我的密码 var update = "UPDATE coordonate SET ? WHERE id_scooter=CR0001 "; con.query(update, { id_scooter: array[0], lat: array[3], longi: array[4], alt: array[5], ip: rinfo.addres

“where子句”中的未知列“CR0001”出现错误,我不知道为什么,因为where子句是关于id\u指示器列的,而不是CR0001。这是我的密码

var update = "UPDATE  coordonate SET ? WHERE id_scooter=CR0001 "; 
    con.query(update, { id_scooter: array[0], lat: array[3], longi: array[4], alt: array[5], ip: rinfo.address, port: rinfo.port, speed: array[6], nr_satelites: array[2], battery_lvl: array[1] }, function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
});

CR0001是字符串,不是整数。因此,必须引用如下内容:

var update = "UPDATE  coordonate SET ? WHERE id_scooter='CR0001' "; 
如果要在中使用自定义参数?问号,可以将数组作为第二个参数传递:

var update = "UPDATE  coordonate SET ?=? WHERE id_scooter=? "; 
con.query(update, [col, val, idscooter], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
});

(用正确的数据替换col、val、idscooter)

CR0001
未包含在引号中,因此它被视为列标识符而不是stringtrue,如果要更改设置?哪里如果我在
con.query(更新,{id\u scooter:array[0],lat:array[3],longi:array[4],alt:array[5],ip:rinfo.address,port:rinfo.port,speed:array[6],nr\u卫星:array[2],battery\u lvl:array[1],array[0]},function(err,result){^SyntaxError:正如我在回答中所解释的,意外标记“[”
。您需要用正确的数据结构替换整个对象,该结构将对应于?问号。您不能只添加数组[0]在对象的末尾。用新数组替换整个对象,并在其中放置3个具有正确数据的字段。如果您不知道如何做,我在这里无能为力:(删除{id_scooter:array[0],lat:array[3],longi:array[4],alt:array[5],ip:rinfo.address,port:rinfo.port,speed:array[6],nr_卫星:array[2],battery\u lvl:array[1],数组[0]}放在那里[col,val,idscooter]这3个变量必须有数据