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

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

时间: 2024-11-02 01:22:49

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

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

在mysql中直接进行这样的判断的方法是使用 row_count(), 这一条语句要紧跟着你执行的sql语句后面. 而Nodejs的i/o都是异步的于是这就产生了一个问题, 不太好判断 row_count()到底是哪句sql执行的结果. 粗略的扫了一眼文档, 文档中并没有描述这个问题. 本想函数嵌套来达到同步的效果的, 却无意发现在执行sql对应的异步函数中的参数中有  affectedRows字段, 经测试, 这货就是 row_count()的结果.实例: 复制代码 代码如下: var cmd

php更新mysql后获取改变行数的方法_php技巧

本文实例讲述了php更新mysql后获取改变行数的方法.分享给大家供大家参考.具体分析如下: 一个php更新mysql后获取改变的行数,在php中提供mysql函数来获取最后执行查询所影响的记录数:mysql_affected_rows(), 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数.FOUND_ROWS() : select ROW_COUNT():update delete insert. 下面就是文章的主要内容描述,代码如下: 复

mysql获取group by的总记录行数另类方法_Mysql

mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 SELECT COUNT(*) from `table` WHERE ......; 查出符合条件的记录总数 代码如下 SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据 这样的语句可以改成: 代码如下 SELECT SQL_

mysql查询语句通过limit来限制查询的行数_Mysql

mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 select name from usertb where age > 20 limit 1; //同上面的一个效果 select name from usertb where age > 20 limit 4, 1; //显示从第五条开始,显示1条

MYSQL INNODB 如何计算B+树表的最大容量和行数

考虑表结构如下: create table testzh(id int  primary key auto_increment ,id2 int,id3 int); 插入数据: delimiter //  create procedure ins3()      begin     declare i int;      set i=0;      while i<10000 do          insert into testzh(id2,id3) values(FLOOR((RAND()

nodejs连接mysql报connect ECONNREFUSED错误的解决方法

通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysql.sock, 用find命令 find / -name *.sock 我用AMH面板装的Mysql,sockPath是/tmp/mysql-generic-5.5.sock.

php更新mysql后获取改变的行数

下面就是文章的主要内容描述.  代码如下 复制代码 found_rows() : select row_count() : update delete insert 注:需要配合相应的操作一起使用,否则返回的值只是1和-1(都是不正确的值) 示例:  代码如下 复制代码 drop database if exists `mytest`; create database `mytest`; use `mytest`; drop table if exists `MyTestTable`; crea

MySQL数据库之UPDATE更新语句精解

用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.本文以MySQL为背景来讨论如何使有SQL中的更新语句. 一.INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据.这两条语句的语法类似.它们的主要区别是如何处理重复的数据. 1. INSERT的一般用法 MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式

mybatis mysql update 返回影响行数错误

问题描述 mybatis mysql update 返回影响行数错误 数据库有个订单表 有一行数据 order_id=1555(自增主键),有个标记字段order_mark=2 执行语句update t_order set order_mark = 2 where order_id=1555 使用mysql自带的client工具 Query OK 0 rows affected (0.00 sec)Rows matched: 1 Changed: 0 Warnings: 0 使用Navicat