首页 > 解决方案 > 将 MySql 查询的结果转换为数组

问题描述

我在执行查询后得到 RowPacketData,现在我想将该 RowPacketData 转换为数组,以便可以对其执行不同的操作。

var query = `Select products.*, product_images.Image_Name 
from products INNER JOIN product_images 
ON products.Id=product_images.Product_Id ORDER BY Id limit ${LimitNum} OFFSET ${startNum}`;
db.query(query , function(err,rows, fields)
{
  if (err) 
  {
    res.status(500).send({ error: 'Following Error Occured : '+ err });
    console.log('Following Error Occured : ' + err);
  }
  else
  {      
    res.json(rows);
    console.log('20 Products Displayed on Page : ' + page);    
  }
})

注意:我正在使用节点 js。

标签: mysqlsqlnode.jsarrays

解决方案


我认为您的问题出在您的数据库连接上。您应该在执行查询之前添加对 db 连接的检查。

例如,请参见此处: https ://www.w3schools.com/nodejs/nodejs_mysql_select.asp

您的查询和代码看起来正确。从一个更简单的查询开始并慢慢扩展它(这将检测查询中的错误),并通过错误处理在同一位置建立连接。100% 确定您有连接。

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("Select * from products limit", function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
});

PS:我无法发表评论,因此需要直接尝试回答。但是应该很高兴知道您是否确定有连接,以便可以将其从问题方程中取出。


推荐阅读