【问题标题】:Inserting multiple arrays from post method从 post 方法插入多个数组
【发布时间】:2019-04-12 16:17:55
【问题描述】:

我正在尝试从邮递员那里获取发布数据,这是多个数据数组,但似乎无法让它们进入数据库,如果我在发布时对数组进行硬编码,它将进入数据库但是不是动态的。

index.js

/* POST home page. */
router.post('/', function (req, res) {
    const sql = require('../models/db.js');

    let data = req.param('data');
    console.log(data);

    const sqlstatement = "INSERT INTO Sales (user_id, type, amount) VALUES (?)";

    sql.query(sqlstatement, [data], function (err, res) {

        if(err) {
            console.log("error: ", err);
        }
        else{
            console.log(res.insertId);
        }
    });

    res.send(data);

});

db.js



'user strict';

const mysql = require('mysql');

//local mysql db connection
let connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : 'api'
});

connection.connect(function(err) {
    if (err) throw err;
});

module.exports = connection;

邮递员数据

[{"key":"data","value":"[[111, 'net', 1234],[111, 'gross', 1234]]\n","description":"","type":"text","enabled":true}]

控制台错误


code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlMessage:
   "Unknown column '[[111, 'net', 1234],[111, 'gross', 1234]]' in 'field list'",
  sqlState: '42S22',
  index: 0,
  sql:
   "INSERT INTO Sales (user_id, type, amount) VALUES (`[[111, 'net', 1234],[111, 'gross', 1234]]`)" }

【问题讨论】:

标签: mysql node.js express


【解决方案1】:
const sqlstatement = "INSERT INTO Sales (user_id, type, amount) VALUES (?,?,?)"

你必须为每一列打一个问号。

【讨论】:

    【解决方案2】:

    准备合适的SQL语句

    INSERT INTO Sales (user_id, type, amount) VALUES (111, 'net', 1234),(111, 'gross', 1234);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2023-03-20
      相关资源
      最近更新 更多