您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

Nodejs使用mysql模块之获得更新和删除影响的行数的方法

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 业余时间玩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     });   });