我在function1
中使用了两个函数function2
,node.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
我做错了什么?
答案 0 :(得分:1)
首先,在循环中运行mysql查询是一种不好的做法。第二,
你错过了javascript中异步流程的基础知识。 Here是一篇很好的文章,其中解释了JavaScript中异步编程的基本概念。 connection.query
是异步的,因此如果您希望代码工作,则应在最后一次迭代的插入查询的回调中运行计数查询。
但正如我已经提到的,在循环中运行它们是一种不好的做法。我建议你只在循环中构建查询字符串以进行多次插入,但最后只运行一次(在回调中使用计数查询)。