分类: PHP 7.4
-
本文记录了在 Yii 2.0 中使用 like 操作符查找反斜杠时结果为空的问题。经排查,在 MySQL 5.7.19 版本下,当字段排序规则为 utf8mb4_unicode_ci 时,需在 SQL 中多增加一根反斜杠才能查出数据。对比测试 utf8mb4_general_ci 排序规则则无此现象。查阅官方文档得知这是特定版本下 utf8mb4_unicode_ci 的已知 Bug,该问题在 MySQL 8.0.18 中已修复。
-
接口响应报错提示 SQL 语法错误,经排查发现当请求参数 filter 包含特定单引号时,生成的 FIND_IN_SET 语句因缺少转义导致异常。对比发现,同条件下 LIKE 语句未报错是因为进行了转义。为解决此问题,参考相关文档在 Yii 2.0 中新增了支持 FIND_IN_SET 函数的条件构建器,并在 ActiveDataFilter 中使用 addslashes 函数对参数值进行转义,修改后接口响应成功,SQL 语句正常执行。
-
本文介绍了在 Yii 2.0 中通过命令行脚本将数据从 csp 数据库迁移至 cloud 数据库的实现过程。通过编写自定义控制器并执行相关命令,从源表筛选出 95 条记录并插入目标表。操作完成后,目标表记录总数变为 253 条,实际新增 95 条数据,符合迁移预期。
-
文章记录了在 Docker 环境下部署 Yii 2.0 时,实现单域名与多域名模式同时支持的过程。通过修改 frontend 配置文件与 Nginx 配置文件,并设定环境变量控制模式,利用 Shell 脚本判断变量值执行相应的文件拷贝操作。在解决因脚本执行顺序导致 Nginx 无法启动的问题后,成功完成了该部署配置。
-
本文记录了将 Yii Framework 从 2.0.35 升级至 2.0.41.1 的过程。通过更新 Composer 工具并执行更新命令,解决了 fxp/composer-asset-plugin 插件冲突及已废弃的 flow/jsonpath 包依赖问题。针对 phpunit/php-token-stream 废弃提示,经检测存在多层依赖关系,决定暂时保留该警告,同时查阅框架升级说明以确认可能的兼容性更改。
-
在 Yii 2.0 开发过程中遇到 Malformed UTF-8 characters 报错,通过打印异常信息发现包含乱码。使用 mb_convert_encoding 转换字符编码后,响应状态码变为 500 并提示无法解析主机。经排查分析,该问题与系统返回的中文编码有关,而非简单的中文内容问题,因为某些未转换编码的错误信息能正常运行,需针对特定异常信息的字符编码进行处理。
-
针对集群部署下 Yii2 队列执行时间不可控甚至超出一小时的问题,通过在扩展源代码中打印日志定位原因。怀疑多进程监听存在严重锁定问题,遂将 Supervisor 中的队列监听命令替换为运行命令,并部署双容器测试。结果显示,info 命令查看的 reserved 状态队列持续时间约为1分钟,4组队列全部执行完毕控制在10分钟内,集群环境下也未出现新问题。
-
本文探讨了在 Yii 2.0 框架中使用查询构建器定义 LIKE 操作符 WHERE 条件的具体实现。通过设置操作数,包括字段名称、模糊查询值以及可选的转义映射参数,能够灵活控制 SQL 语句的生成逻辑。文章详细说明了如何通过禁用转义功能或使用数组,生成以特定字符前缀开始的查询语句,最终生成的 SQL 语句符合预期。
