代码之家  ›  专栏  ›  技术社区  ›  George

对节点有挑战。js更新算术SQL

  •  0
  • George  · 技术社区  · 3 年前

    当我这样做的时候

    更新fasta\u users set balance=balance+7000,其中id=1;

    它工作得很好,没有什么挑战,但当我想以编程方式处理它时,它告诉我amount必须是一列,我不明白它为什么会这样。

    我的代码如下所示:

    app.put('/api/v1/user/fundWallet',async function(req,res,next){
        try {
    
            if (!req.headers.authorization || !req.headers.authorization.startsWith('Bearer ') || !req.headers.authorization.split(' ')[1]) {
                return res.status(422).json({ message: 'Please Provide Token!' })
            }
    
            var id = req.body.id;
            const amount = req.body.amount;
            if (!id) {
                return res.status(400).send({ error: true, message: 'Please provide ID' });
            }
            dbConn.query(`update fasta_users set balance = balance + amount=${amount} where id =${id}`,function (error, results, fields) {
                if (error) throw error;
                return res.send({ error: false, data: results, message: 'users List.' });
            });
    
        } catch (err) {
            next(err);
        }
    })
    

    我不明白它为什么这样做。请告诉我,我确实需要指导。还是必须在这里使用存储过程?

    1 回复  |  直到 3 年前
        1
  •  0
  •   grahamj42    3 年前

    您的代码不会生成与测试相同的SQL—它会发送

    update fasta_users set balance = balance + amount=7000 where id =1
    

    (假设金额和id的值与您的问题中的值相同)。

    摆脱 amount= 应该有用。