如果MySQL查询返回1结果,是否必须指定我想要结果[0]的密码?

时间:2017-10-13 14:44:16

标签: javascript mysql node.js

使用过的查询只返回1行/结果,所以当我试图获取密码列时,我是否必须写:

var hash = results[0].password;

我试过

var hash = results.password;

但是哈希变得不确定。

router.post('/', function(req, res, next) {
  var username = req.body.username;
  var password = req.body.password;

  db.query('SELECT * FROM user WHERE username = ?', [username], function (error, results, fields) {
    if (error) throw error;
    var hash = results[0].password;
    console.log(hash);
  });

  res.redirect('/');

});

1 个答案:

答案 0 :(得分:2)

是的,results只是一个数组,即使有一行,您仍然需要告诉它您要尝试访问哪一行。 results没有属性password,但其中的第一行有。{/ p>

我假设您还拥有(或将包含)确保至少有一行的逻辑?否则,如果该结果不存在(可能用户不存在),则调用results[0]也会导致错误。