当我使用OR获取两个字段时,Nodejs Mysql给出错误

时间:2018-07-04 12:27:46

标签: mysql node.js

实际上,我正在尝试使用nodejs和mysql创建登录API。

当我尝试进行

这样的查询时
"SELECT * 
FROM `users` 
WHERE (`email` = '9592443536' || `mobile` = '9592443536') 
AND `password` = '25f9e794323b453885f5181f1b624d0b'", 

以上查询可在phpMyAdmin中完美运行,但不能使用Node.js运行。

我的代码在下面。

let query = [email,email,password];

    //let q = 'SELECT * FROM `users` WHERE (`email` = ' + email + ' || `mobile` = ' + email + ') AND `password` =' + password;
    connection.query("SELECT * FROM users WHERE (`email` = ? || `mobile` = ?) AND `password` = ?", query ,function (error, results, fields) {
        if (error) throw error;
        if(results.length == '0'){
            res.status(400).send({'result':'email and password does not matched'});
        }
    });

GOT ERROR =

  

错误:ER_PARSE_ERROR:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获取在'?'附近使用的正确语法。在第1行       在Query.Sequence._packetToError(/ var / www / html / office / node / node_modules / mysql / lib / pro tocol / sequences / Sequences / Sequence.js:52:14)

当我对执行的查询进行控制台时,我与上面的内容相同

 "SELECT * 
    FROM `users` 
    WHERE (`email` = '9592443536' || `mobile` = '9592443536') 
    AND `password` = '25f9e794323b453885f5181f1b624d0b'", 

数据库屏幕截图-Screenshot

请提前帮助谢谢。

0 个答案:

没有答案