无法使用mysql和nodejs将动态行插入到表中

68bkxrlz  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(328)

我试图将对象数组插入到sql中,但出现以下错误

code: 'ER_PARSE_ERROR',
  errno: 1064,
  sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?,?)' at line 1",
  sqlState: '42000',
  index: 0,
  sql: 'INSERT INTO orderedproducts (order_id, product_id, quantity) VALUES ((19, 10, 2),?,?)'

这是我的测试对象数组

var testData = [
                  {
                     productId: 10,
                     quantity: 2
                  }
               ]

我想把这个对象数据插入sql。
我当前编写的返回上述错误的代码

let lastId = results.insertId

                    let orderedProductSql = 'INSERT INTO orderedproducts (order_id, product_id, quantity) VALUES (?,?,?)'

                    var testData = [
                        {
                            productId: 10,
                            quantity: 2
                        }
                    ]

                    let values = testData.reduce((o, a) => {
                        let ini = []
                        ini.push(lastId)
                        ini.push(a.productId)
                        ini.push(a.quantity)
                        o.push(ini)
                        return o
                    }, [])

                    connection.query(orderedProductSql, [values], (err, results) => {
                        if (err) {
                            return connection.rollback(_ => {
                                throw err
                            })
                        }
                        connection.commit(err => {
                            if (err) {
                                connection.rollback(_ => {
                                    throw err
                                })
                            }
                            connection.release()
                            callBack(null, results)
                        })
                    })

我怎么解决这个问题??

oipij1gg

oipij1gg1#

尝试这样做:

connection.query( "INSERT INTO orderedproducts SET order_id=?, product_id=?, quantity=?" , [lastid, productid, quantity] , 
  function(err, result) {
     if(err) throw err;
     });

您需要使用set将数据插入mysql数据库。

相关问题