mysql - RowDataPacket 返回未定义的值

标签 mysql node.js stored-procedures

我有一个存储过程要插入数据库并在插入后将订单 ID 返回到控制台。

这是我的存储过程

CREATE PROCEDURE create_old_user_order(
IN p_userid      int(11),
IN p_userfname   varchar(50),
IN p_userlname   varchar(50),
IN p_phone       varchar(20),
IN p_item        int(11),
IN p_item_qty    int(11))
BEGIN
INSERT INTO user_order(customer_id,
                   first_name,
                   last_name,
                   phone_numb,
                   order_item,
                   order_quantity)
    VALUES (p_userid,
            p_userfname,
            p_userlname,
            p_phone,
            p_item,
            p_item_qty);

  SET @LAST_id = LAST_INSERT_ID();

  SELECT @LAST_id AS `booking_id`;
  END;

从 Node.js Express 应用程序调用该过程就可以了。

     console.log(results)

显示这个

       [ [ RowDataPacket { booking_id: 15646747643 } ],
       OkPacket {
        fieldCount: 0,
        affectedRows: 0,
         insertId: 0,
         serverStatus: 2,
          warningCount: 0,
            message: '',
           protocol41: true,
             changedRows: 0 } ]

       console.log(results[0]) 

显示:

      [ RowDataPacket { booking_id: 15646747643 } ]

这样做

       console.log(results[0].booking_id)

我明白了

         Undefined. 

请帮忙

最佳答案

已经修好了。应该以这种方式访问​​它

 results[0][0].booking_id

关于mysql - RowDataPacket 返回未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45126581/

相关文章:

php - 这段代码是否安全,不会受到任何 SQL 注入(inject)攻击?

javascript - 如何让这个服务器进程永远运行呢?

sql - 从存储过程结果集中插入/更新表上的数据

sql - COALESCE 在 Where 子句中?

php - 如何使用sqlsrv和 "?"样式参数在php中执行存储过程

mysql - 如何在 Eloquent 连接中选择子查询中的最大聚合

mysql - 如何将 JOIN 表上的数据显示为不同的结果?

mysql - JOIN - 在列名之前添加表名是一种好习惯吗?

javascript - 尝试为提到的用户添加角色

angularjs - 在 Node js中将服务器内部的数据从一个文件发送到另一个文件