D
D
dmitriu2562018-09-17 19:01:42
MySQL
dmitriu256, 2018-09-17 19:01:42

How to insert js variable into sql query?

It is impossible to interpose a variable into sql-query
In a DB of record is.

module.exports.registration = function(req, res) {

    var email = req.body.email;
    var password = req.body.password;
    var phone = req.body.phone;

    req.getConnection(function (err, connection){
        connection.query('SELECT * FROM registration WHERE email = '+email+', password =  '+password+'  ', function(err, rows){
            if (err) throw new Error;
            console.log(rows);
          
        }) ;
    });
    
};

The second method
If you find only email, everything works, it displays the request data
connection.query('SELECT * FROM customers WHERE email = ?', [email], function(err, rows)

But if you want to find multiple parameters
connection.query('SELECT * FROM customers WHERE email = ?, password = ?', [email, password], function(err, rows)

Result: Error
Error
throw err; // Rethrow non-MySQL errors
Error
at Query. (C:\OSPanel\domains\crmUsers\routes\customers.js:23:28)
at Query. (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\Connection.js:502:10)
at Query._callback (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\Connection.js:468: 16)
at Query.Sequence.end (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Query.ErrorPacket (C:\OSPanel\domains\crmUsers\ node_modules\mysql\lib\protocol\sequences\Query.js:90:8)
at Protocol._parsePacket (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\protocol\Protocol.js:278:23)
at Parser.write (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\ protocol\Protocol.js:38:16)
at Socket. (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\Connection.js:91:28)
at Socket. (C:\OSPanel\domains\crmUsers\node_modules\mysql\lib\Connection.js:502:10)

Answer the question

In order to leave comments, you need to log in

3 answer(s)
A
Andrey Burov, 2018-09-17
@dmitriu256

WHERE email = ? AND password = ?

V
Vladislav Kadun, 2018-09-17
@ZXZs

Maybe you should use template strings? So somehow it will be more transparent.

A
Anton Alexandrov, 2020-04-22
@Toscha

For example so.

const id = req.params["id"];
db.query`SELECT  ..... something FROM .... somewhere WHERE [id] = ${id}`

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question