Javascript Postgresql绑定一个变量的变量
通过阅读这里的其他帖子,我明白了错误是什么,我只是不知道如何在我的用例中修复它。我正在使用for循环构建一个查询,该查询将向我的数据库中插入多行Javascript Postgresql绑定一个变量的变量,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,通过阅读这里的其他帖子,我明白了错误是什么,我只是不知道如何在我的用例中修复它。我正在使用for循环构建一个查询,该查询将向我的数据库中插入多行 const id = req.body.user_id; const data = req.body.data; let queryString = ''; let venue_ids = ``; for (let i = 2; i < data.length + 2; i++) { if (i === data.le
const id = req.body.user_id;
const data = req.body.data;
let queryString = '';
let venue_ids = ``;
for (let i = 2; i < data.length + 2; i++) {
if (i === data.length + 1) {
queryString += `($1, $${i})`;
venue_ids += `${data[i - 2].id}`;
} else {
queryString += `($1, $${i}), `;
venue_ids += `${data[i - 2].id}, `;
}
}
我得到的错误是,bind消息提供了2个参数,但prepared语句“”需要11个参数。
因此,当我希望它是变量中的变量时,我看到了正在发生的事情,我的场馆ID
被解释为一个变量,如果这有意义的话
知道如何解决这个问题吗?我可以通过对整个绑定数组使用变量binded\u id
来解决我的问题
let binded_ids = [id];
for (let i = 2; i < data.length + 2; i++) {
if (i === data.length + 1) {
queryString += `($1, $${i})`;
binded_ids.push(data[i - 2].id);
} else {
queryString += `($1, $${i}), `;
binded_ids.push(data[i - 2].id);
}
}
let binded_ids = [id];
for (let i = 2; i < data.length + 2; i++) {
if (i === data.length + 1) {
queryString += `($1, $${i})`;
binded_ids.push(data[i - 2].id);
} else {
queryString += `($1, $${i}), `;
binded_ids.push(data[i - 2].id);
}
}
let sqlText = `INSERT INTO user_matches (user_id, venue_id) VALUES ${queryString}`;
pool
.query(sqlText, binded_ids)
.then((response) => {
res.send(response.rows);
})
.catch((err) => {
console.log('Error saving venue matches', err);
});