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

node mysql2用?传参查询报Incorrect arguments statement问题咨询

解答

你写的参数化查询写法是mysql2的标准正确用法,本身语法没有问题。你遇到的执行异常可以从以下几个方向排查:

  • 优先检查offset的返回值类型:SQL中LIMIT后接的参数必须是数值类型,若helper.getOffset返回的是字符串格式的数字,mysql2处理占位符时会自动为字符串参数添加单引号,最终生成的SQL会变成SELECT id, quote, author FROM quote LIMIT '0','10'这类非法语法,自然执行失败;你手动拼接参数时传入的是纯数字没有引号,就可以正常运行。你可以通过console.log(typeof offset)确认返回类型,如果是字符串直接转成数值即可,传参时改成[Number(offset), Number(config.listPerPage)]就行。
  • 确认mysql2的导入版本:如果你初始化数据库连接时用的是require('mysql2')而不是require('mysql2/promise'),默认的query方法是回调式的,不支持await调用,拿到的返回值也不是正常的查询结果,检查下数据库初始化部分的代码就能确认。
  • 开启调试查看实际执行的SQL:创建数据库连接时添加debug: true配置,就能直接打印出发送给MySQL服务端的完整SQL语句,能快速定位是不是参数转义环节出了问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 12:48:00