【问题标题】:How to display result a mysql query in node.js如何在 node.js 中显示 mysql 查询的结果
【发布时间】:2014-10-15 09:04:43
【问题描述】:

我正在尝试使用 res.end 显示我的查询结果,但我不能,因为我是 Node.js 的新手,这是我的代码的一部分,其中用户在表单中输入用户名和密码一个 html 文件,我想显示查询的结果,即用户名,但我得到的是数据库表中的所有行:

     app.post('/login/:email', function (req, res){
      connection.connect();
      email = req.body.email;
      password = req.body.password;
     if(email && password )
     {
     console.log(email);
     console.log(password);
   connection.query('SELECT username FROM user WHERE email = email and password = password', function     (error, rows, fields) { 

        str='';
        for(i=0;i<rows.length;i++)
        str = str + rows[i].username +'\n';
         res.end( str);


      }); 
      connection.end(); 
     } 
});

【问题讨论】:

    标签: mysql sql node.js


    【解决方案1】:

    因为这个,你得到了整张桌子:

       connection.query('SELECT username FROM user WHERE email = email and password = password', function     (error, rows, fields) { 
    

    每一行都有email = email and password = password,这是因为左侧和右侧都被评估为列名。这就像说SELECT * FROM TABLE WHERE 1 = 1

    尝试将其更改为:

       connection.query('SELECT username FROM user WHERE email = ? and password = ?', [email, password], function     (error, rows, fields) { 
    

    【讨论】:

    • P.S.我刚刚修改了答案,之前的格式:email 也需要更改一些配置。在您的情况下,? 格式更易于使用。
    【解决方案2】:

    connection.query('SELECT username FROM user WHERE email = "email" and password = "password"', function (error, rows, fields)

    //希望这会起作用我添加“”因为字符串在查询中包含“”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-04
      • 2013-01-31
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多