分类: MySQL
-
本文基于 yii2-app-advanced 项目新建接口应用,将数据库字符集调整为 utf8mb4 并配置 RESTful 风格的响应格式。针对开发环境出现的数据库索引长度报错问题,分析了 MySQL 版本差异导致的限制,通过启用 Innodb_large_prefix 参数并修改迁移文件解决了该故障。文章还实现了请求日志记录功能,配置了忽略 GET 请求的规则,并完成了支持筛选功能的日志列表与详情接口。
-
在 Yii 2.0 中使用 updateAll() 方法将表列值更新为同一表另一列的值时,直接使用查询构建器会导致 prev_status 被错误更新为 0。为解决该问题,引入 yii\db\Expression 对象来表示不需要转义或引用的数据库表达式,最终成功生成了符合预期的 SQL 语句,实现了将 prev_status 更新为 status 的值并将 status 设为 4 的操作。
-
文章介绍了基于 yiisoft/yii2-app-advanced 搭建 RESTful 接口应用并准备自动化测试的过程。内容包括删除冗余的控制器、模型与视图,配置环境与数据库,解决内容协商引起的测试报错。通过创建 API 测试套件,编写了涵盖用户列表、详情、创建、更新、删除及 OPTIONS 请求的测试用例,利用 Fixtures 和 JsonPath 验证响应结构与数据,最终确保所有测试通过以保障现有功能的稳定性。
-
本文介绍了在 Yii 2 Starter Kit 中实现多租户数据库动态配置的过程。通过自定义 Connection 类和 ActiveRecord,调用多租户系统的接口获取主机名等配置属性,在数据库连接打开前完成初始化。文章解决了因动态配置导致的日志组件与 RBAC 组件报错,并通过修改组件注册逻辑解决了数据库连接数过多的问题。最终实现了基于租户 ID 的动态连接,并利用 Redis 缓存接口响应和数据库结构,有效减少了 HTTP 请求次数。
-
针对 CakePHP 2.10.3 框架,文章通过修改配置文件与视图布局文件开启了调试模式,实现了在 GET 请求时输出 SQL 语句。针对 POST 请求成功后跳转导致无法查看日志的问题,介绍了在控制器跳转前利用 getDataSource 获取日志或使用 ConnectionManager 调用 showLog 方法的方法,从而准确打印出已执行的 SQL 记录。
-
针对 phpMyAdmin 无法导入过大 SQL 文件的问题,文章尝试在 MySQL Query Browser 中通过点击 Execute 按钮执行脚本,但在处理过程中因文件第 18 万多行存在特殊字符导致 SQL 语法报错,需要手动定位并删除错误行。鉴于该图形界面工具操作繁琐且对特殊字符支持不佳,最终改用 MySQL 客户端命令行,通过 source 命令指定文件路径成功导入 303MB 的数据。
