babushka
babushka

Reputation: 45

node js mysql save from select the data to a var

I have this query:

var sql = "SELECT user FROM users WHERE user = '" + req.body.user + "'";

Suppose I have in the database a row with the user: babushka and the req.body.user is also: babushka. This query will bring me the answer: {user: 'babushka'}.

connection.query(sql, function (err, result) {
    if (err) {
        throw err;
    }
    console.log(result);
});

But, I am trying to save only the babushka to a var. How can I do it?

Upvotes: 3

Views: 1810

Answers (3)

joe
joe

Reputation: 435

From your query, you can easily get the answer from result object. You can use

console.log(result.user);

That is, your entire code will be like this

var sql = "SELECT user FROM users WHERE user = '" + req.body.user + "'";
  connection.query(sql, function (err, result) {
    if (err) {
        console.log('db fetch error',error);
        throw err;
    }
   else {
   let user =result.user;
   console.log('user=>',user);
    }

});

Upvotes: 0

Alexander O'Mara
Alexander O'Mara

Reputation: 60537

Easy, just access the user property from the result object.

Also, don't concatenate raw input from users into your SQL! Using parameter binding like shown to safely avoid SQL injection easily:

var sql = "SELECT user FROM users WHERE user = ?";

connection.query(sql, [req.body.user], function (err, result) {
    if (err) {
        throw err;
    }
    var user = result.user;
    console.log(user);
});

Upvotes: 1

edkeveked
edkeveked

Reputation: 18381

Your result is a Javascript Object. You can get the user property like this:

 connection.query(sql, function (err, result) {
        if (err) {
            throw err;
        }
        var user =result.user;
    });

Upvotes: 2

Related Questions