Nodejs使用mysql模組之獲得更新和刪除影響的行數的方法

來源:互聯網
上載者:User

 業餘時間玩nodejs的時候遇到點蛋疼的情況, 在使用mysql模組串連mysql操作, 想在update, delete語句的時候, 想知道到底update, delete成功了沒有

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.