SQL参数填充
把 ? 占位符与参数合并成完整可执行 SQL
SQL 语句(用 ? 占位)
参数(每行一个,按顺序对应 ?)
结果
这个工具能做什么
SQL 参数填充工具把带 ? 占位符的预编译 SQL 和一组参数合并成一条完整、可直接执行的 SQL 语句。开发时框架打印出来的往往是参数分离的日志,例如 SQL 一行、参数另一行,排查慢查询或数据问题时很不方便,这个工具帮你一键拼回原样。
它按顺序把 SQL 里的每个 ? 替换成对应的参数值,并自动做类型判断:纯数字原样填入不加引号;NULL、true、false 识别为关键字;其余当作字符串,两侧加单引号,并把值里的单引号转义成两个单引号,避免拼出的 SQL 语法出错。这样得到的语句可以直接粘到数据库客户端里跑。
举例,SQL 是 SELECT * FROM user WHERE name=? AND age>?,参数是 O'Brien 和 20,填充后得到 SELECT * FROM user WHERE name='O''Brien' AND age>20,其中名字里的单引号被正确转义。工具还会提示占位符数量和参数数量是否一致,方便发现漏填或多填。
需要提醒的是,这个工具是为了方便查看和调试,拼出的字符串仅供本地执行核对,真正的业务代码务必继续使用参数化查询(预编译)来防止 SQL 注入,不要把手工拼接的 SQL 直接用于生产。
SQL参数填充是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“sql参数填充”、“sql占位符替换”、“预编译sql”,说的都是这个。
常见使用场景
- 把框架日志里分离的 SQL 和参数拼回完整语句
- 排查慢查询时得到可直接 EXPLAIN 的 SQL
- 复现线上数据问题时还原真实执行的查询
- 给同事或工单粘贴一条可运行的示例 SQL
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。
常见问题
这个工具支持哪种占位符?
支持最常见的 ? 位置占位符(JDBC、PDO 等预编译语句风格)。参数按每行一个、从上到下依次对应 SQL 中的 ?。
字符串参数会自动加引号吗?
会。工具自动判断类型:数字和 NULL/true/false 原样填入,其余作为字符串两侧加单引号,并把内部单引号转义为两个,避免语法错误。
参数里有单引号会出问题吗?
不会。像 O'Brien 这样的值会被转义成 'O''Brien',符合标准 SQL 字符串转义规则,可安全执行。
占位符和参数数量不一致会怎样?
工具会照常填充能对应上的部分,并在状态栏提示两者数量不一致,帮你发现漏填或多填,多余的 ? 会原样保留。
拼出来的 SQL 能直接用在代码里吗?
仅建议用于本地调试和核对。生产代码应继续用参数化查询防止 SQL 注入,手工拼接的字符串不要直接拼进业务逻辑。