You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JavaScript二维数组插入MySQL表?代码报错求解决方案

解决JavaScript二维数组批量插入MySQL的语法错误

你的问题出在db.query的参数传递上:当使用MySQL批量插入的VALUES ?占位符时,驱动要求第二个参数是包裹着二维数组的外层数组,你直接传入二维数组myArr,导致SQL解析时缺少外层括号,触发语法错误。

修正后的代码

var myArr = [
  [ 10000, '2021-03-08', 10000, '2021-03-07', 0, 364 ],
  [ 10000, '2021-04-08', 10000,'2021-03-08', 0, 333 ],
  [ 10000, '2021-05-08', 5000, '2021-03-08', 2500, 303 ]
]

const sql = 'INSERT INTO vm001 (Amount, date, entryamt, entrydate, balanceamt, daysdel) VALUES ?'

// 核心修改:把二维数组放到外层数组里
db.query(sql, [myArr], function (err, result) {
  if (err) {
    console.error('插入失败:', err)
    return
  }
  console.log(`成功插入 ${result.affectedRows} 条数据`)
})

补充说明

  • 这种写法会让MySQL驱动自动处理每条数据的括号包裹和逗号分隔,既避免了手动拼接SQL的语法问题,也能防止SQL注入风险
  • 如果你用的是mysql2驱动,还可以用Promise风格简化代码:
// mysql2 Promise 版本示例
async function insertData() {
  try {
    const [result] = await db.query(sql, [myArr])
    console.log(`成功插入 ${result.affectedRows} 条数据`)
  } catch (err) {
    console.error('插入失败:', err)
  }
}

insertData()

内容的提问来源于stack exchange,提问作者doc pinocchio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:10:39