Nodejs mysqlモジュールを使用して、影響を更新および削除する行数を取得する方法

1098 ワード

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
    });
  });