postgresql更新函数动态输入错误node.js

时间:2018-06-14 00:22:15

标签: node.js postgresql psql

编辑 - 我不知道如何在js中做到这一点,因为我的问题是一个小的语法问题或理解PHP代码没有帮助我。有人可以使用pg库在js中发布一个工作示例吗?

我有一些不起作用的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"

感谢您的帮助!

0 个答案:

没有答案