Having Challenges with Node.js Update SQL for Arithemetics

Issue

When I do this

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

it works fine, No challenge, but when i want to work on it programmatically, it tells me amount has to be a column, i do not understand why it behaves so.

My code looks thus :

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);
    }
})

I do not understand why it behaves so. Please I do need guidance.Or Do I have to use a Stored procedure here?

Solution

Your code does not produce the same SQL as your test – it sends

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

(assuming the same values for amount and id as in your question).

Getting rid of the amount= should work.

Answered By – grahamj42

Answer Checked By – Willingham (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.