Welcome 微信登录

首页 / 脚本样式 / JavaScript / Nodejs使用mysql模块之获得更新和删除影响的行数的方法

在mysql中直接进行这样的判断的方法是使用 row_count(), 这一条语句要紧跟着你执行的sql语句后面. 而Nodejs的i/o都是异步的于是这就产生了一个问题, 不太好判断 row_count()到底是哪句sql执行的结果. 粗略的扫了一眼文档, 文档中并没有描述这个问题. 本想函数嵌套来达到同步的效果的, 却无意发现在执行sql对应的异步函数中的参数中有  affectedRows字段, 经测试, 这货就是 row_count()的结果.
实例:复制代码 代码如下:
var cmd = "UPDATE users SET " + field + " = " +  value + " WHERE id = " +  userid;
  console.log(cmd);
  db.query(cmd, function(err, rows, fields){
    var affectedRows = rows.affectedRows;
    if(err || affectedRows){
      var msg = "update " + field + " error";
      logger.error(msg);

      res.send({
        "code": 500,
        "state": "failure",
        "msg": msg,
        "data": null
      });
      return;
    }

    res.send({
      "code": 200,
      "state": "success",
      "msg": "updated",
      "data": null
    });
  });