如何访问RowDataPacket mysql-node.js

时间:2016-06-30 20:54:31

标签: javascript mysql sql node.js

connection.query('
SET @update_id := 0; 
UPDATE relations set x1 = ?, y1 = ?, id = (SELECT @update_id := id) WHERE element_to =?;
SELECT @update_id;',[data.x2,data.y2,id],function(err,result){
if(err){console.error(err);}
else{console.log(result);console.log(result.@update_id);}
});

我从查询执行中得到以下结果:

[ RowDataPacket {
  '@update_id': 'WAbWA1WA5WA2WA8WAdWA4WA9' } ] ]

如何访问 @update_id 字段以将值存储在变量中。我知道这些是对象,我尝试以下方法来访问它们,如下所示:

results.@update_id; 

但是当我尝试记录该值时,我得到了未定义。如何获得价值?

3 个答案:

答案 0 :(得分:14)

试试这个:

results[0].@update_id

答案 1 :(得分:0)

使用console.log(JSON.stringify(result));

然后,如果要获取变量的访问数据

var data = JSON.stringify(result[0].@update_id)
console.log(data);

您不能在var E.G上使用索引

console.log(data[0].@update_id)是错的

答案 2 :(得分:0)

只需将结果转换为数组,然后您就可以轻松访问数据,我可以通过执行此操作来解决

let res = JSON.parse(JSON.stringify(result));