我有一些不起作用的postgresql代码。我试图弄清楚如何以一种不受sql注入到我的数据库中的方式输入变量。我一直在看这个网站,但它没有涵盖更新功能。 https://github.com/brianc/node-postgres/wiki/FAQ 我的代码看起来像这样:
queryDb("UPDATE Users SET $1=($2) WHERE name=$3;", [data["col"], data["newVal"], unm]);
// query the database
function queryDb(qu, params, callbackFunction, callbackParams)
{
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: true,
});
client.connect();
console.log("Querying " + qu);
console.log("With params " + params);
let dataResults = [];
client.query(qu, params, (err, res) => {
if (err) throw err;
for (let row of res.rows) {
dataResults.push(row);
}
client.end();
console.log(dataResults);
if(callbackFunction)
{
callbackFunction(dataResults, callbackParams);
}
});
}
该功能适用于其他调用,如选择和插入,但不适用于更新。这是为什么?
这是错误:
error: syntax error at or near "$1"
感谢您的帮助!