错误:列"年龄"不存在[node + pg + postgres]

时间:2016-07-05 22:21:44

标签: node.js postgresql

您好我尝试使用node.js中的pg对我的数据库执行INSERT但是我有一个 错误:列"年龄"不存在。

这是我的代码:

p = realloc(p, sizeof(*p) * 100);

这里是我的db:

    app.post('/saving', function(req, res){
  var age = req.param('Age');
  var gender = req.param('gender');
  //res.send(age + gender)
  pool.connect(function(err, client, done){
    if(err) {
      return res.send('error')
    }
    client.query('INSERT INTO  public.attack (age, gender) VALUES (age , gender)')

    done()
  })
})

1 个答案:

答案 0 :(得分:2)

就postgres而言,age内的genderVALUES (age, gender)将不会被定义。在这种情况下,您希望使用prepared statement(或更具体的参数化查询)来将变量与查询一起传递。

这可能类似于您想要的代码,我相信:

let sql = 'INSERT INTO public.attack (age, gender) VALUES ($1, $2)';
let params = [ age, gender ];
client.query(sql, params, function(err) {
  // make sure you handle errors from here as well,
  // including signaling `res` and `done`
});