如何在带有Express框架的mysql中使用AND运算符

时间:2017-07-24 12:42:56

标签: mysql node.js express

我想使用mysql在快速框架中使用AND运算符来实现查询。

mysql查询:从问题中选择*,其中question_id = 1 AND answer =" apple" AND appkey =" 1122&#34 ;;

我想使用mysql在express js中实现上述查询。我尝试过以下查询。

req.getConnection(function(err,connection){


    var data = {

        qid    : input.questionid,
        ansvalue : input.answervalue,
        appid   : input.appkey,


    };
    console.log(data);

    var query = connection.query('SELECT * FROM request_auth WHERE question_id = ?',[qid]'AND answer_description = ?',[ansvalue]'AND app_key = ?',[appid],function(err,rows)
    {

        if(query=='')
            console.log("Error Selecting : %s ",err );

        res.render('edit_customer',{page_title:"Edit Customers - Node.js",data:rows});


     });

但它是抛出错误qid未定义。请给我解决方案。谢谢。

2 个答案:

答案 0 :(得分:2)

您必须将实际查询(使用占位符)和占位符参数分开(请参阅第三个示例here):

connection.query('SELECT * FROM request_auth WHERE question_id = ? AND answer_description = ? AND app_key = ?', [qid, ansvalue, appid], ...)

另外,请确保在查询完成后调用connection.release()(更多信息here)。

答案 1 :(得分:1)

我刚刚推出了一个潜在的快速解决方案,因为我之前没有使用过这个框架,但你可能需要在使用变量之前添加空格,因为它似乎可能没有使用AND因为它将它视为一个长词。