使用 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中文網其他相關文章!