在mysql中直接進(jìn)行這樣的判斷的方法是使用 row_count(), 這一條語句要緊跟著你執(zhí)行的sql語句后面. 而Nodejs的i/o都是異步的于是這就產(chǎn)生了一個(gè)問題, 不太好判斷 row_count()到底是哪句sql執(zhí)行的結(jié)果. 粗略的掃了一眼文檔, 文檔中并沒有描述這個(gè)問題. 本想函數(shù)嵌套來達(dá)到同步的效果的, 卻無意發(fā)現(xiàn)在執(zhí)行sql對應(yīng)的異步函數(shù)中的參數(shù)中有 affectedRows字段, 經(jīng)測試, 這貨就是 row_count()的結(jié)果.
實(shí)例:
復(fù)制代碼 代碼如下:
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
});
});
新聞熱點(diǎn)
疑難解答
圖片精選