Maison >base de données >tutoriel mysql >Comment accéder aux données des objets RowDataPacket dans Node-webkit et MySQL ?
Lorsque vous travaillez avec Node-webkit et MySQL, extraire des données à partir de requêtes de base de données peut sembler une énigme. L'une des énigmes que vous pourriez rencontrer est l'accès aux résultats de votre requête, qui sont souvent stockés dans un objet RowDataPacket.
Dans votre code, vous avez stocké les résultats dans un tableau ret après avoir utilisé la requête(). method:
var ret = []; conn.query(SQLquery, function(err, rows, fields) { if (err) alert("..."); else { for (var i of rows) ret.push(i); } doStuffwithTheResult(ret); });
À votre grande surprise, lorsque vous essayez de travailler avec les résultats dans la fonction doStuffwithTheResult, vous vous demandez comment extraire le data.
Résoudre ce mystère implique de comprendre la nature des objets RowDataPacket. Contrairement à son nom, RowDataPacket n'est pas un paquet mais une fonction constructeur qui crée des objets. Chaque objet contient des paires clé-valeur qui représentent une ligne de votre table de base de données. Vous pouvez accéder à ces valeurs en utilisant la notation par points.
Par exemple, si vous souhaitez récupérer le user_id du premier résultat, vous utiliserez ret[0].user_id. Pour obtenir à la fois la clé et la valeur, vous pouvez faire ret[0].user_id ou ret[0]['user_id'].
N'oubliez pas que les objets RowDataPacket sont des objets normaux. Vous pouvez le vérifier en vérifiant leur nom de constructeur : [0].constructor.name. Cela révélera que l'objet est une instance de RowDataPacket.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!