节点mysql插入并选择计数不起作用

时间:2016-06-11 07:18:32

标签: node.js mysql2

我在function1中使用了两个函数function2node.js

function1用于将数据插入表格。

for(var j=0; j < length; j++){

   connection.query('INSERT INTO TestTable SET ?', { row_name : name }, function(err, res){
      if(err) throw err;
   });
}

function2用于选择插入名称的计数,计数。

connection.query('select row_name, count(*) as count from TestTable where row_name = ?', name , function (err, rows){  
    console.log(rows);
}); 

我的log给了我name : null, count : 0

我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,在循环中运行mysql查询是一种不好的做法。第二, 你错过了javascript中异步流程的基础知识。 Here是一篇很好的文章,其中解释了JavaScript中异步编程的基本概念。 connection.query是异步的,因此如果您希望代码工作,则应在最后一次迭代的插入查询的回调中运行计数查询。

但正如我已经提到的,在循环中运行它们是一种不好的做法。我建议你只在循环中构建查询字符串以进行多次插入,但最后只运行一次(在回调中使用计数查询)。