标签: addslashes
-
本文记录了在 Laravel 6 中将打印出的 SQL 复制到 MySQL 5.7 执行时结果不一致的问题。程序查询返回 79 条数据,而数据库直接执行返回 81 条。排查发现 whereRaw 语句中的参数绑定存在差异,通过将 SQL 改为原生形式,或者使用 addslashes 对反斜杠进行转义,最终使程序执行结果变为 81 条,与数据库执行结果一致。
-
网页请求参数输入反斜杠导致阿里云日志服务报错 JSON 解析失败,排查发现参数经缓存处理后转义丢失。在模板文件中尝试使用 addslashes 函数转义后引发引号解析错误,随后改用 addcslashes 函数仅转义反斜杠。测试发现双引号与换行符解析仍失败,最终调整参数同时转义反斜杠与双引号,并修正换行符处理方式。经测试 JavaScript 代码未被注入,富文本输入解析成功,问题解决。
-
接口响应报错提示 SQL 语法错误,经排查发现当请求参数 filter 包含特定单引号时,生成的 FIND_IN_SET 语句因缺少转义导致异常。对比发现,同条件下 LIKE 语句未报错是因为进行了转义。为解决此问题,参考相关文档在 Yii 2.0 中新增了支持 FIND_IN_SET 函数的条件构建器,并在 ActiveDataFilter 中使用 addslashes 函数对参数值进行转义,修改后接口响应成功,SQL 语句正常执行。
