8
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);}
});

I am getting the following result from a query execution:

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

How do I access the @update_id field to store the value in a variable. I know these are objects and I tried the following to access them such as follows:

results.@update_id; 

But I get undefined when I try to log the value. How to get the value?

Arihant
  • 3,847
  • 16
  • 55
  • 86
  • Possible duplicate of [How to access a RowDataPacket object](https://stackoverflow.com/questions/31221980/how-to-access-a-rowdatapacket-object) – Damjan Pavlica Aug 01 '18 at 17:20

3 Answers3

18

Try this:

results[0].@update_id
Lalit Goswami
  • 798
  • 1
  • 8
  • 21
2

use console.log(JSON.stringify(result));

then if you want to get access data on variable

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

you can't use index on var E.G

console.log(data[0].@update_id) it is wrong

Ruslan
  • 6,090
  • 1
  • 21
  • 36
nazir
  • 21
  • 1
2

just conver the result to array, then you can easily access the data, i get solved by doing this

let res = JSON.parse(JSON.stringify(result));
ahsan dev
  • 31
  • 2