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

PHP+phpMyAdmin环境下MySQL插入查询转义字符被自动移除问题

问题根因
  • SQL语法默认将反斜杠\识别为转义字符,你在插入语句中写的\"会被解析器判定为「仅插入双引号"」,用于转义的反斜杠本身不会被作为存储内容的一部分,该问题和存储引擎、字符集排序规则无关联。
  • 单独更新列可以正常保存转义值,是因为更新操作中你对反斜杠做了额外转义,或是使用了参数绑定自动处理了转义逻辑,避开了SQL字符串解析时的转义消耗。
解决方案
  • 手动双重转义反斜杠:如果要最终存储test \"and\" test,插入语句中对应的取值需要写为'test \\"and\\" test',第一个反斜杠会将第二个反斜杠转义为普通字符,解析后就能同时保留反斜杠和双引号。
  • 使用参数化预处理查询:不要直接拼接SQL字符串,通过PHP的PDO或mysqli扩展的预处理功能,将需要存储的原始字符串test \"and\" test作为参数绑定到SQL语句中,数据库驱动会自动处理转义逻辑,既不会丢失反斜杠,也能避免SQL注入风险,是最优解决方案。
  • 临时调整SQL模式(不推荐):执行查询前先运行SET sql_mode = 'NO_BACKSLASH_ESCAPES';关闭反斜杠转义规则,该方案会改变当前会话的SQL解析逻辑,可能引发其他查询异常,仅可临时测试使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 13:45:01