Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组中的键值对插入SQL查询字符串_Javascript_Sql_Node.js - Fatal编程技术网

Javascript 将数组中的键值对插入SQL查询字符串

Javascript 将数组中的键值对插入SQL查询字符串,javascript,sql,node.js,Javascript,Sql,Node.js,我有以下数组代码: const dataToset = [ { key: 'key1', value: "some data" }, { key: 'key2', value: 37 }, ]; await db.query(` UPDATE some_table SET ${dataToset.map(data => `${data.key} = ${data.value}`)} WHERE id ${id}`); 结果查询是下一步:upda

我有以下数组代码:

const dataToset = [
    { key: 'key1', value: "some data" },
    { key: 'key2', value: 37 },
];

await db.query(`
    UPDATE some_table 
    SET ${dataToset.map(data => `${data.key} = ${data.value}`)}
    WHERE id ${id}`);
结果查询是下一步:
updatesome_table SET key1=some data,key2=37,其中id=1
它失败了,因为
一些数据应该作为字符串传递。
如何获取有效查询:
更新某些表集key1=“某些数据”,key2=37,其中id=1

p、 我得到了下一个错误:“数据”附近的语法错误

除了语法错误(它必须是
,其中id=1
),我会使用
.join(',')
进行显式数组到字符串的转换,并稍微更改模板字符串,注意(仅此)字符串值应括在单引号中:

const dataToset=[
{key:'key1',value:'some data},
{key:'key2',值:37},
],
id=1
查询=`
更新一些表
设置${
数据集
.map({key,value})=>
值的类型=='字符串'?
键+“=”+值+“”:
键+'='+值)
.join(“,”)
}
其中id=${id}
`
console.log(查询)

。作为控制台包装{min height:100%;}
不是吗
其中id=1
?不,在这里修复了它。