使用 Node-webkit 和 MySQL 时,从数据库查询中提取数据似乎是一个谜语。您可能遇到的难题之一是访问查询结果,这些结果通常存储在 RowDataPacket 对象中。
在您的代码中,在使用 query() 后,您已将结果存储在 ret 数组中方法:
var ret = []; conn.query(SQLquery, function(err, rows, fields) { if (err) alert("..."); else { for (var i of rows) ret.push(i); } doStuffwithTheResult(ret); });
令你惊讶的是,当你尝试使用 doStuffwithTheResult 函数中的结果时,你想知道如何提取data.
解开这个谜团需要理解 RowDataPacket 对象的本质。与它的名字相反,RowDataPacket 不是一个数据包,而是一个创建对象的构造函数。每个对象都包含代表数据库表中的一行的键值对。您可以使用点表示法访问这些值。
例如,如果您想从第一个结果中检索 user_id,则可以使用 ret[0].user_id。要同时获取键和值,可以执行 ret[0].user_id 或 ret[0]['user_id']。
请记住,RowDataPacket 对象是普通对象。您可以通过检查其构造函数名称来验证这一点:[0].constructor.name。这将表明该对象是 RowDataPacket 的实例。
以上是如何从 Node-webkit 和 MySQL 中的 RowDataPacket 对象访问数据?的详细内容。更多信息请关注PHP中文网其他相关文章!