SQL 字符串转义
支持 MySQL / PostgreSQL / SQLServer 多方言。
🔤 SQL String Escape
Escape SQL identifiers and string literals in your browser to prevent injection when building queries.
📐 工作原理与说明
SQL 字符串转义。
- 规则:单引号通常写作两个单引号(
''),MySQL 也支持反斜杠转义(\')。 - 重要:转义不能替代参数化查询(prepared statement)——后者才是防止 SQL 注入的根本手段。
- 差异:不同数据库的转义规则不同,标准 SQL 用
'',MySQL 默认还支持\。 - 建议:优先使用带参数绑定的查询接口,仅在无法参数化时才考虑转义。
📖 方言差异
MySQL: 单引号 → \' 反斜杠 → \\ NUL → \0
PostgreSQL: 单引号 → '' 不转义反斜杠(默认)
SQL Server: 单引号 → '' 不转义反斜杠
📚 深度解析:SQL 字符串转义
💡 常见使用场景
- 拼 SQL 前转义单引号,避免语法错误与注入(首选参数化查询)。
- 临时排查问题时手工拼 SQL:把含单引号的值转义后再拼,避免语法错误——但生产代码应改用参数化查询。
转义 O'Brien
输入 `O'Brien` → 输出 `O''Brien`(标准 SQL 用双单引号转义)。
❓ 常见问题(FAQ)
- 转义能代替参数化查询吗?
- 不能,转义只是兜底,参数化才是防注入正解。
- 为什么转义仍可能被绕过?
- 因为转义依赖字符集与上下文:若连接使用了 GBK 等多字节编码,攻击者可用特定多字节序列「吃掉」你加的反斜杠从而逃逸引号;此外数字型参数不加引号时转义完全无效。参数化查询把数据与语句分开发给数据库,从根本上不存在这类问题。
⚠️ 使用说明与注意事项
- 本工具纯前端运行,数据不会上传到服务器
- 建议在主流浏览器(Chrome/Safari/Firefox/Edge)中使用
- 计算结果仅供参考,请以实际应用场景为准
▼
工具简介
SQL 字符串转义。专为开发者打造的在线工具,纯前端运行,代码不离开浏览器。